我们可以在If条件下使用IsDisplayed方法吗?

时间:2014-07-22 08:02:14

标签: testing selenium selenium-webdriver automation automated-tests

我有一个场景,在某些情况下应用程序崩溃并显示警告"严重错误"发生了。但很少发生。所以为了解决这个问题,我编写了一个代码

if (driver.findElement(By.xpath("/html/body/form/div[4]/div[3]/div[1]/div[1]/div[1]/span[1]")).isDisplayed()){
        System.out.println("Critical Error Occured.");
        driver.close();
    } else {

但即使没有显示关键错误页面,也会执行if条件,并显示No such element exception。可以做些什么?

2 个答案:

答案 0 :(得分:0)

您可以在if条件中使用isDisplayed方法或验证其大小以检查元素是否存在,这不是问题,但您在何处放置代码很重要。 No such element exception发生,因为代码在放置它的位置进行验证,并且您没有得到错误页面,它会抛出异常

解决方案可能:将条件放在可能出现错误的页面/必要的地方

答案 1 :(得分:-1)

您应该使用

检查元素是否存在
List<WebElement> criticalError = driver.findElements(By.xpath("/html/body/form/div[4]/div[3]/div[1]/div[1]/div[1]/span[1]"));

if(criticalError.size() >0) {
    System.out.println("Critical Error Occured.");
    driver.close();     
}
else {
    // continue the test
}