【问题标题】:How to Handle Links with Blank Targets in Selenium Web driver如何在 Selenium Web 驱动程序中处理带有空白目标的链接
【发布时间】:2019-06-18 12:45:59
【问题描述】:

我正在检查页面上的活动链接..使用 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"));
    }
}

【问题讨论】:

    标签: java selenium selenium-webdriver httpconnection


    【解决方案1】:

    最简单的选择是在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());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多