为了账号安全,请及时绑定邮箱和手机立即绑定

在获取所有链接时,忽略循环中的注销链接并继续在 selenium java 中导航

在获取所有链接时,忽略循环中的注销链接并继续在 selenium java 中导航

沧海一幻觉 2023-05-10 14:17:37
我正在获取页面中的所有链接并导航到所有链接。其中一个链接是注销。我如何跳过/忽略循环中的注销链接?我想跳过注销链接并继续列表 demovar=driver.findElements(By.tagName("a")); System.out.println(demovar.size());   ArrayList<String> hrefs = new ArrayList<String>(); //List for storing all href values for 'a' tag      for (WebElement var : demovar) {          System.out.println(var.getText()); // used to get text present between the anchor tags          System.out.println(var.getAttribute("href"));          hrefs.add(var.getAttribute("href"));           System.out.println("*************************************");      }      int logoutlinkIndex = 0;      for (WebElement linkElement : demovar) {               if (linkElement.getText().equals("Log Out")) {                           logoutlinkIndex = demovar.indexOf(linkElement);                           break;                }      }      demovar.remove(logoutlinkIndex);      //Navigating to each link      int i=0;      for (String href : hrefs) {          driver.navigate().to(href);          System.out.println((++i)+": navigated to URL with href: "+href);          Thread.sleep(5000); // To check if the navigation is happening properly.          System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
查看完整描述

2 回答

?
慕雪6442864

TA贡献1812条经验 获得超5个赞

如果您想从循环中省略注销链接而不是创建列表作为driver.findElements(By.tagName("a"));替代方法,您可以使用:

driver.findElements(By.xpath("//a[not(contains(.,'Log Out'))]"));
查看完整回答
反对 回复 2023-05-10
?
www说

TA贡献1775条经验 获得超8个赞

  1. 使用Stream.filter()函数删除“不感兴趣”链接的 Java 方法:

    List<String> hrefs = driver.findElements(By.className("a"))
            .stream()
            .filter(link -> link.getText().equals("Log out"))
            .map(link -> link.getAttribute("href"))
            .collect(Collectors.toList());
  2. 使用 XPath!=运算符解决方案仅收集文本不等于的链接Log Out

    List<String> hrefs = driver.findElements(By.xpath("//a[text() != 'Log out']"))
            .stream()
            .map(link -> link.getAttribute("href"))
            .collect(Collectors.toList());


查看完整回答
反对 回复 2023-05-10
  • 2 回答
  • 0 关注
  • 127 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信