我正在獲取頁面中的所有鏈接并導航到所有鏈接。其中一個鏈接是注銷。我如何跳過/忽略循環(huán)中的注銷鏈接?我想跳過注銷鏈接并繼續(xù)列表 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個贊
如果您想從循環(huán)中省略注銷鏈接而不是創(chuàng)建列表作為driver.findElements(By.tagName("a"));
替代方法,您可以使用:
driver.findElements(By.xpath("http://a[not(contains(.,'Log?Out'))]"));

www說
TA貢獻1775條經驗 獲得超8個贊
使用Stream.filter()函數(shù)刪除“不感興趣”鏈接的 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());
使用 XPath
!=
運算符解決方案僅收集文本不等于的鏈接Log Out
:List<String>?hrefs?=?driver.findElements(By.xpath("http://a[text()?!=?'Log?out']")) ????????.stream() ????????.map(link?->?link.getAttribute("href")) ????????.collect(Collectors.toList());
添加回答
舉報
0/150
提交
取消