是否可以在WebDriverWait超时时定义条件?

时间:2014-11-06 15:57:02

标签: selenium-webdriver webdriver

条件 - 单击按钮/ driver.navigate.back()的示例 - 是否包含在时间单位到期时(WebDriverWait的超时)?

实施例: 对于以下声明 - WebDriverWait wait60 = new WebDriverWait(driver,60); wait60.until(ExpectedConditions.elementToBeClickable(driver.findElement(By.locator)));

如果在60秒内没有在网页上加载elementtobeclickable - 我希望执行语句driver.navigate.back()。任何定义这种类型语句的方法(比如在类级别)所以所有wait60.until条件都会在超时时导致相同的定义语句?

2 个答案:

答案 0 :(得分:2)

我认为这不包含在WebDriverWait功能中。我可能会使用try-catch异常处理,当你抓住timeoutException时,请调用driver.navigate.back()

您可以创建一个方法来执行此操作并随时调用它。

答案 1 :(得分:0)

将它放在这样的try-catch块中:

try{
    WebDriverWait wait60 = new WebDriverWait(driver, 60);
    wait60.until(ExpectedConditions.elementToBeClickable(driver.findElement(By.locator)));
}catch(Exception e){
    System.out.println("Element not found in due time.  "+e.getMessage);
    driver.navigate().back();
}

如果在适当的时候找不到元素,将抛出TimeoutException,随后将在catch块中处理它。此外,之后浏览器将被导航回来。