在 Selenium WebDriver 中找不到元素时杀死 NoSuchElementException 或任何异常的最快方法
Fastest way to kill NoSuchElementException or any Exception when element is not found in Selenium WebDriver
在 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 秒,因为这太浪费时间了。
或者如果有另一种更快的处理方式如果元素不存在请帮忙。
尝试设置
driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
紧接着
WebDriver driver = new FirefoxDriver(); //or ChromeDriver
ImplicityWait 基本上告诉 Selenium "Hey, every operation you are trying to perform should Timeout after 3 seconds"
在 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 秒,因为这太浪费时间了。
或者如果有另一种更快的处理方式如果元素不存在请帮忙。
尝试设置
driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
紧接着
WebDriver driver = new FirefoxDriver(); //or ChromeDriver
ImplicityWait 基本上告诉 Selenium "Hey, every operation you are trying to perform should Timeout after 3 seconds"