WebDriverWait无法正常工作

时间:2013-10-21 15:24:29

标签: java selenium

我正在使用Windows 8,IE 10(java - WebDriver 2.37.0),我试图等到页面上加载元素。我使用了以下代码:

WebDriver driver = new FirefoxDriver();
driver.get("http://abc.com");
WebElement myDynamicElement = (
    new WebDriverWait(driver, 10).until(
    ExpectedConditions.presenceOfElementLocated(By.id("myDynamicElement")));

但它正在抛出超时异常。如果我删除此代码,它就能识别webdriver上的元素。

我在FireFox,Chrome等其他浏览器中尝试过相同的代码,但仍然抛出错误。

感谢任何帮助。

由于

2 个答案:

答案 0 :(得分:1)

您将等待分配给变量myDynamicElement。如果你不给WebElement变量做什么,Selenium会抛出超时异常。如果您只想等待元素存在,则无需将其分配给WebElement变量。

WebDriver driver = new FirefoxDriver();
driver.get("http://abc.com");
new WebDriverWait(driver, 10).until(
    ExpectedConditions.presenceOfElementLocated(By.id("myDynamicElement")));

如果您需要指定该变量供以后使用,请对该元素执行某些操作。

WebElement myDynamicElement =
    new WebDriverWait(driver, 10).until(
    ExpectedConditions.presenceOfElementLocated(By.id("myDynamicElement")));
myDynamicElement.isDisplayed();

答案 1 :(得分:0)

  public static void waitForElementToAppear(Driver driver, By selector, long timeOutInSeconds) {
    WebDriverWait wait = new WebDriverWait(driver, timeOutInSeconds);
    wait.until(ExpectedConditions.visibilityOfElementLocated(selector));
  }