如何识别硒中是否显示数据

时间:2018-07-25 06:44:14

标签: java selenium selenium-webdriver

条件:如何检查数据是否显示

Boolean isPresent3 = driver.findElements(By.cssSelector(".input-horizon.horizon-program-guide.form-control.ng-pristine.ng-untouched.ng-valid.ng-not-empty.ng-valid-min")).size()> 0;

if (isPresent3 == true) {
    System.out.println("Aflam data exists");                    
}
else {
    System.out.println("Aflam data does not exists");
}

enter image description here

Boolean isPresent3 = driver.findElements(By.cssSelector("csspath")).size()> 0;

这段代码有时会起作用,有时却没有任何有效的解决方案

3 个答案:

答案 0 :(得分:0)

它检查页面上是否存在该元素。要检查元素的可见性,应使用“ isDisplayed()”。我的建议是同时使用这两个条件。

List<WebElement> elem= driver.findElements(By.cssSelector(".input-horizon.horizon-program-guide.form-control.ng-pristine.ng-untouched.ng-valid.ng-not-empty.ng-valid-min"));
if(elem.size()> 0){
    if(elem.get(0).isDisplayed()){
        System.out.println("Element is dislayed and present");
    }
}
else{
    System.out.println("Element is not present");
}

答案 1 :(得分:0)

要检查元素是否可见,请使用isDisplayed()方法,该方法返回布尔值(即)

List<WebElement> element=driver.findElements(By.cssSelector(".input-horizon.horizon-program-guide.form-control.ng-pristine.ng-untouched.ng-valid.ng-not-empty.ng-valid-min"));    
 System.out.Println(element.size());   
 if(element.isDisplayed()==true){
 System.out.Println("element is present");
 }
 else
 {
 System.out.Println("element is not present");
 }

答案 2 :(得分:0)

好吧,如果某个时间而不是所有时间都起作用,则可能是该元素需要一段时间才能在dom中可用,并且您的findElements语句在可用之前就已执行!

  • 快速而肮脏的解决方法是添加睡眠,例如Thread.sleep(3000)
  • 另一种解决方法是,您可以在try catch块中设置waitForElementpresent条件,并在catch块中将标志设置为false!

如果您使用的是qaf,则可以使用assertion/verification与驱动程序和元素对象一起使用,而无需使用任何上述解决方法。例如,在您的情况下,它可能看起来像:

$("css=csspath").verifyPresent(); // checks only presence in dom. 
$("css=csspath").verifyVisible();// ensures present and displayed