我正在使用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相同的代码,但是仍然抛出错误。

任何帮助表示赞赏。

谢谢

最佳答案

您正在将等待时间分配给变量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();

10-06 10:25
查看更多