如何处理Selenium Web驱动程序中具有空白目标的链接

时间:2019-06-18 12:45:59

标签: java selenium selenium-webdriver httpconnection

我正在使用htttpurlconnection检查页面上的活动链接。

我遇到了一种情况。

您可以看到一些带有target =“ _ blank”的链接

我不想包含指向链表的链接。我试图使用target的getattribute属性排除相同的内容。但是它不起作用。

https://imgur.com/0ilF2gL

List <WebElement> activelinks = new ArrayList<WebElement>();

for (int i=0;i<linkslist.size();i++) {

    system.out.println("link address of full links and images>>> " +  linkslist.get(i).getAttribute("href")); 

    if (linkslist.get(i).getAttribute("href")!=null && (linkslist.get(i).getAttribute("target")!="_blank" )) {
        activelinks.add(linkslist.get(i));
        System.out.println("active link " + 
        activelinks.get(i).getAttribute("href"));
    }
}

1 个答案:

答案 0 :(得分:2)

如果要匹配以下链接,最简单的选择是在XPath selector级执行过滤:

  • 具有href属性

  • 具有target个属性,不等于_blank

您可以将此类链接简单匹配:

//a[@href and not(@target='_blank')]

关于您的方法,您应该使用String.equals()方法进行比较,建议的代码为:

List<WebElement> activeLinks = linkslist
        .stream()
        .filter(link -> link.getAttribute("href") != null)
        .filter(link -> !link.getAttribute("target").equals("_blank"))
        .collect(Collectors.toList());