显示如何检查列表中的所有网络元素

时间:2019-01-30 11:07:57

标签: list selenium for-loop xpath header

Footer with textlinks

我要验证是否显示“更多信息”页脚部分下的“关于我们”,“联系我们”和“常见问题”文本链接

如何检查?我是否必须获取每个列表Web元素的xpath,然后检查其是否显示在网页上?或一次列出所有网络元素,然后跟踪for循环?

还要帮助我为“关于我们”元素编写xpath

2 个答案:

答案 0 :(得分:1)

您可以一次验证全部,也可以单独验证,请尝试下面的代码,该代码将提取所有选项,验证是否存在这些选项并检查它们是否显示:

// Get all the options using the below line
List<WebElement> elements = driver.findElements(By.xpath("//div[@class='footer-section']//a"));

// Check they are present or not?
if(elements.size() > 0) {
    System.out.println("=> The Options are present...");
} else {
    System.out.println("=> The Options are nor present...");
}

// Check they are displayed or not?
for(WebElement element : elements) {
    System.out.println(element.getText()+" is displayed? "+element.isDisplayed());
}

如果要单独验证,则需要执行以下操作:

driver.findElement(By.xpath("//div[@class='footer-section']//a[text()='About Us']")).isDisplayed();

答案 1 :(得分:1)

如果要验证是否存在每个元素,则是,您需要分别检查每个元素。尽管您可以使一种通用方法来检查其存在或不使用断言。 例如:

public void checkElementPresent(String elementText){
    Assert.assertTrue(driver.findElements(By.xpath("//a[text()="+elementText+"]")).size()>0);
}

或者如果您不想使用assert,那么也可以使用if条件,例如:

public void checkElementPresent(String elementText){
 if(driver.findElements(By.xpath("//a[text()="+elementText+"]")).size()>0){
        System.out.println("Element is present");
    }else{
        System.out.println("Element is not present");
    }
}

您可以通过发送要验证链接是否存在的链接的文本来调用该方法:

checkElementPresent("About Us"); or
checkElementPresent("Contact Us");