从isDisplayed方法返回false

时间:2014-10-08 12:43:49

标签: selenium-webdriver

boolean text = driver.findElement(By.cssSelector(".sr_ctext>b")).isDisplayed();
System.out.println(text);

当找不到.sr_ctext>b时,套件停止,当成功找到元素时,将返回true

我想当找不到元素时,它应该在文本变量中返回false,而不仅仅是停止代码。

3 个答案:

答案 0 :(得分:0)

然后你应该在第一步获得WebElement,如果得到的结果不是null,则只检查isDisplayed。另一种解决方案是将您的代码放在try / catch块中:

boolean text;
try 
{
    text = driver.findElement(By.cssSelector(".sr_ctext>b")).isDisplayed();
}
catch (NoSuchElementException e)
{
    text = false;
}
System.out.println(text);

答案 1 :(得分:0)

代码在尝试查找不存在的元素时停止。所以最好看看元素是否存在,

boolean isPresent = driver.findElements(By.cssSelector(".sr_ctext>b")).size() > 0;

if(isPresent==true){ 

   boolean text = driver.findElement(By.cssSelector(".sr_ctext>b")).isDisplayed();
   System.out.println(text);

}

else{
     text=isPresent; //false, in your case
  }

答案 2 :(得分:0)

         try 
         {
         text = driver.findElement(By.cssSelector(".sr_ctext>b")).isDisplayed();
         }
         catch (Exception NoSuchElementException)
         {
         }

只需添加try catch句柄异常。