webdriver能否实现找不到元素退出重登?
目前碰到这样一个问题,系统登录后需要加载一些元素成功后才能继续其它操作,但是经常会出现加载超时失败,于是我考虑在一定时间内找不到元素就退出浏览器重新登录,这种场景能否实现? 我试以下代码,但是超时还是报错,似乎无法捕获异常public static boolean isElementExsit(By locator) {
try {
new WebDriverWait(driver, 40).until(ExpectedConditions.presenceOfElementLocated(locator));
return true;
} catch (NoSuchElementException e) {
System.out.println("Welcome Element is not exsit!");
return false;
}
}
while(isElementExsit(By.xpath("//*[@id=\"welcome_id\"]"))==false){
driver.quit();
options.addArguments("--allow-running-insecure-content");
driver = new ChromeDriver(options);
driver.manage().window().maximize();
driver.get("..........");
driver.findElement(By.id("loginId")).sendKeys("test");
driver.findElement(By.name("j_password")).sendKeys("Pass");
driver.findElement(By.name("submitButton")).click();
}; 把显示等待new WebDriverWait(driver, 40).until(ExpectedConditions.presenceOfElementLocated(locator));换成new WebDriverWait(driver, 40).until(ExpectedConditions.presenceOfElementLocated(locator)); driver.findElement(locator); 可以捕获异常,但是等待时间固定死,有没有好的办法,可以在显示等待中捕获异常? 有没有高人解答一下:lol 问题解决catch异常类型写错,显示等待抛出的异常是TimeoutException
页:
[1]