如何在Selenium webdriver Java中验证链接并单击它们

时间:2014-01-28 18:48:39

标签: java selenium xpath

我是硒的新人。我在页面上有类似的链接与类似的xpaths(让我们说链接1到30)。我需要验证页面上是否存在所有这些内容(我希望selenium能够为每个元素打印类似“元素1”的内容)并且所有这些都是可点击的(新页面将打开)。   到目前为止,我有这个代码逐个点击所有链接并打印他们的标题:

    driver.get("http://anysite.com");
    String part1=".//*[@id='footer']/div/div[1]/div[2]/ul/li[";
    String part2="]/a";
    for (int i=1;i<=30;i++){
    String text = driver.findElement(By.xpath(part1+i+part2)).getText();
    System.out.println(text);
    driver.findElement(By.xpath(part1+i+part2)).click();
    System.out.println(driver.getTitle());
    driver.get("http://anysite.com");

此外,我还有此代码可以单独验证每个链接的存在(如果我有30个链接,我必须复制此代码30次):

    if(driver.findElements(By.xpath(".//*[@id='footer']/div/div[1]/div[2]/ul/li[1]/a")).size() != 0){
      System.out.println("Element Link 1 is Present");
      }else{
      System.out.println("Element Link 1 is Absent");
      }

到目前为止,我有两个测试用例,有没有办法将这两个部分组合在一起? 谢谢!

1 个答案:

答案 0 :(得分:0)

在字符串1中,您将xpath视为:

String part1=".//*[@id='footer']/div/div[1]/div[2]/ul/li[";

虽然它应该是:

String part1="//*[@id='footer']/div/div[1]/div[2]/ul/li[";

您需要删除点“。”来自你的xpath。