boolean text = driver.findElement(By.cssSelector(".sr_ctext>b")).isDisplayed();
System.out.println(text);
当找不到.sr_ctext>b
时,套件停止,当成功找到元素时,将返回true
。
我想当找不到元素时,它应该在文本变量中返回false,而不仅仅是停止代码。
答案 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句柄异常。