51Testing软件测试论坛

标题: webdriver能否实现找不到元素退出重登? [打印本页]

作者: andyclock    时间: 2016-2-5 13:05
标题: 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
把显示等待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
有没有高人解答一下
作者: andyclock    时间: 2016-2-18 13:38
问题解决catch异常类型写错,显示等待抛出的异常是TimeoutException




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2