'While opening links in reverse order in new tabs, I want to exclude "sports" and "IR" links
I want to open links from contents from bottom to top in new tab:
driver.get("https://en.wikipedia.org/wiki/Sports_video_game");
WebElement contents = driver.findElement(By.xpath("//*[@id='toc']"));
List<WebElement> links = contents.findElements(By.tagName("a"));
String clickonlinkTab=Keys.chord(Keys.CONTROL, Keys.ENTER);
for(int i = links.size() - 1; i >= 0; i--)
{
links.get(i).sendKeys(clickonlinkTab);
links.findElement(By.partialLinkText("sports")).notclick();
links.findElement(By.partialLinkText("IR")).notclick();
}
I want Selenium to skip links which has "sports" and "IR" any where on it.
Solution 1:[1]
As "notclick" is not a valid method, the simplest solution is to check if the link text contains "Sports" or "IR" before performing the click action. E.g:
for (int i = links.size() - 1; i >= 0; i--) {
if (!(links.get(i).getText().toLowerCase().contains("sports")
|| links.get(i).getText().toLowerCase().contains("ir"))) {
links.get(i).sendKeys(clickonlinkTab);
}
}
Here is a link to a runnable test case where you can see the results, including printing to verify that it works. If you want to edit, making an account can be done for free via the edit button.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Marko Delic |
