【问题标题】:Why Wait.until() doesn't work in Selenium WebDriver?为什么 Wait.until() 在 Selenium WebDriver 中不起作用?
【发布时间】:2014-08-15 00:29:43
【问题描述】:

我一直在使用 Selenium WebDriver。我想等到该元素出现在我正在使用的网页上:

    WebDriverWait wait = new WebDriverWait(driver, Long.parseLong(timeout));
    wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(locator)));

但是如果我正在寻找的元素不存在甚至超过超时,我的测试就会卡在第二行。请帮忙。谢谢。

【问题讨论】:

  • 根据文档,visibilityOfElementLocated() 查找“给定元素是否可见且大小不为零”。可见性基于样式属性。你的超时时间是多久?你等了多久?如果你只尝试WebElement ele = ExpectedConditions.visibilityOfElementLocated(By.xpath(locator));,你会得到什么?
  • 我成功了。我将超时从 60000 更改为 60,因为它将第二个参数作为秒而不是毫秒。

标签: selenium selenium-webdriver webautomation


【解决方案1】:

也许: - 元素 is 存在,因此不会抛出异常 - 然后卡住了,因为之后你什么都没做

until 调用之后尝试打印 smt。我猜它会被打印出来。

否则可能是超时: 它必须以秒为单位,而不是毫秒。

http://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/support/ui/WebDriverWait.html#WebDriverWait(org.openqa.selenium.WebDriver,长)

【讨论】:

  • Snap!.. 我正在写答案,而你正在写你解决了:) 无论如何,很好。
【解决方案2】:

我成功了。我将超时时间从 60000 更改为 60,因为它将第二个参数作为秒而不是毫秒。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-01
    • 2017-01-19
    • 2015-07-03
    • 2021-11-21
    • 2013-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多