在Selenium WebDriver中找不到元素时杀死NoSuchElementException或任何异常的最快方法

时间:2017-11-30 15:52:36

标签: java selenium selenium-webdriver exception-handling nosuchelementexception

catch中使用try / catch时是否有最快的方法来终止进程?通常需要1分钟才能在捕获到异常后继续进行。

我的代码如下:

public boolean elementExist(WebDriver driver, By locator){
    boolean exist = false;
    try{
        exist = driver.findElements(locator).size()>0;

    } catch (org.openqa.selenium.NoSuchElementException e) {
        return false;
    }

    return exist;
}

每当脚本没有找到该元素时,它等待1分钟才能继续。我需要将1分钟降低到至少5-10秒bcos,这是浪费时间。

或者如果有另一种方式并且更快地处理如果元素不存在请帮助。

1 个答案:

答案 0 :(得分:1)

尝试设置

driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);

之后
WebDriver driver = new FirefoxDriver(); //or ChromeDriver 

ImplicityWait基本上告诉Selenium"嘿,您尝试执行的每个操作都应该在3秒后超时"