我正在使用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等其他浏览器中尝试过相同的代码,但仍然抛出错误。
感谢任何帮助。
由于
答案 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));
}