【发布时间】:2013-12-03 09:04:54
【问题描述】:
我正在编写一些使用 selenium chrome 驱动程序的自动化测试。我试图编写一个可重用的方法,该方法将显式等待元素出现,然后在其他类中调用此方法。看起来很简单,但它没有做我想做的事。这是我的方法。
public String waitForElement(String item) {
WebDriverWait wait = new WebDriverWait(driver,30);
WebElement element = wait.until(
ExpectedConditions.elementToBeClickable(By.id(item)));
return item;
}
然后我调用该方法并传递一个参数,如下所示:
waitForElement("new-message-button");
这似乎不起作用,有人可以提供一些见解吗?
【问题讨论】:
-
它没有等待元素出现。
-
你确定
item是你想要返回的吗?当我编写这样的代码时,我想要的是在您的代码中名为element的内容。 -
我试过也没用。
-
你确定在 DOM 中只有该 ID 的一项吗?另外,如果您调试代码,是否找到
element? -
你怎么知道它不等待?您是否设置了断点并对其进行了调试?代码看起来不错,我真的不相信“不等待”它“不起作用”。它会抛出超时异常吗?如果是什么时候?过了多久?为什么返回传入的相同字符串?这没有任何意义。
标签: java selenium selenium-webdriver