【问题标题】:HTMLUnit cannot find elementHTMLUnit 找不到元素
【发布时间】:2017-06-04 06:11:30
【问题描述】:

使用 HTMLUnit 我尝试在使用 Java 登录后单击某个站点上的按钮

登录似乎成功但是,当我尝试单击一个按钮(使用 JS 脚本并由 id="buttonGetDetails" 定义)时,它会抛出一个错误,它无法找到该 id 的元素

“true”是我设置的布尔值,“登录成功”是在测试期间使用的System.out.println

Error:
elementName=[*] attributeName=[id] attributeValue=[buttonGetDetails]
true
Login successful
    at com.gargoylesoftware.htmlunit.html.HtmlPage.getHtmlElementById(HtmlPage.java:1597)

【问题讨论】:

  • 使用htmlPage.asXml() 查看 HtmlUnit 看到的内容,并检查是否记录了任何 JavaScript 错误。另外,尽量提供最小的可重现案例。

标签: javascript java htmlunit


【解决方案1】:

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

【讨论】:

  • 不建议使用 Thread.sleep ,因为它可能会停止加载页面的过程。添加显式等待只是两行代码:WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.id("someid")));
猜你喜欢
  • 2021-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-25
  • 1970-01-01
  • 2017-01-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多