我正在使用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();