andyclock 发表于 2016-2-5 13:05:51

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();
                };

andyclock 发表于 2016-2-5 16:19:06

把显示等待new WebDriverWait(driver, 40).until(ExpectedConditions.presenceOfElementLocated(locator));换成new WebDriverWait(driver, 40).until(ExpectedConditions.presenceOfElementLocated(locator)); driver.findElement(locator); 可以捕获异常,但是等待时间固定死,有没有好的办法,可以在显示等待中捕获异常?

andyclock 发表于 2016-2-16 16:49:59

有没有高人解答一下:lol

andyclock 发表于 2016-2-18 13:38:30

问题解决catch异常类型写错,显示等待抛出的异常是TimeoutException
页: [1]
查看完整版本: webdriver能否实现找不到元素退出重登?