2017-06-04 67 views
0

使用的HtmlUnit我想点击某网站的按钮与Java的HtmlUnit找不到元素

登录看来是成功然而,当我试图点击一个按钮(使用JS脚本在登录后并且,由id =“buttonGetDetails”)中定义的,它抛出一个错误,它不能由ID

“真”找到一个元素是测试

期间,我设置一个布尔值和“登录成功”是一个 System.out.println使用
Error: 
elementName=[*] attributeName=[id] attributeValue=[buttonGetDetails] 
true 
Login successful 
    at com.gargoylesoftware.htmlunit.html.HtmlPage.getHtmlElementById(HtmlPage.java:1597) 
+0

使用'htmlPage.asXml()'看看到的HtmlUnit什么,并检查是否有记录的任何JavaScript错误。另外,尽量提供最低限度的重现性案例。 –

回答

0

的页面可能需要一些在您登录后加载的时间以及在加载页面之前执行代码以查找按钮的时间。尝试使用明确的等待。 http://toolsqa.com/selenium-webdriver/implicit-explicit-n-fluent-wait/

+0

Thread.sleep(x)会工作吗? – ConfusedJavaDev

+0

不建议使用Thread.sleep,因为它可能会暂停加载页面的过程。添加显式等待只需要两行代码: 'WebDriverWait wait = new WebDriverWait(driver,10); WebElement元素= wait.until(ExpectedConditions.elementToBeClickable(By.id( “someid”)));' –