如何使webdriver等待,它是什么声明?

时间:2015-02-23 04:39:40

标签: java selenium webdriver

第一行是否让webdriver等待10秒?或者我需要两者兼而有之?

 WebDriverWait wait = new WebDriverWait(firefoxDriver,10);
 wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(xpathID)));

我对驱动程序等待的语句感到困惑?这句话是否足够?

WebDriverWait wait = new WebDriverWait(firefoxDriver,10);

2 个答案:

答案 0 :(得分:1)

WebDriverWait wait = new WebDriverWait(firefoxDriver,10);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(xpathID)));

等待将忽略默认情况下遇到(抛出) NotFoundException 的实例,直到'条件,并立即传播所有其他人。

您可以通过调用忽略(添加例外)方法向忽略列表添加更多内容。

答案 1 :(得分:1)

到目前为止,我知道有三种不同的等待机制SeleniumExplicitImplicitFluent。见this。你提到的那个是Explicit。显式等待意味着等待元素满足您告诉WebDriver的特定条件。例如元素的可见性(你正在使用的那个),元素存在等。org.openqa.selenium.support.ui中有一个名为ExpectedConditions的类,它有很多成员来提供等待元素的不同机制。参见{ {3}}获取完整列表。

回到你的问题: WebDriverWait wait = new WebDriverWait(firefoxDriver,10);仅定义等待时间WebDriver应等待以满足您提供的条件(在第二行。) 实际等待发生wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(xpathID)));WebDriver尝试在页面上找到与xpathID匹配且元素可见的元素,并在10s之后抛出异常。如果WebDriver10s之前找到目标元素,则不会等待10s并继续前进。