在新标签页中以相反顺序打开链接时,我想排除 "sports" 和 "IR" 链接

While opening links in reverse order in new tabs, I want to exclude "sports" and "IR" links

我想在新标签页中从下到上打开内容链接:

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();
}

我希望 Selenium 跳过任何位置带有“体育”和“IR”的链接。

由于“notclick”不是一个有效的方法,最简单的解决方案是在执行点击操作之前检查 link 文本是否包含“Sports”或“IR”。例如:

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 是可运行测试用例的 link,您可以在其中查看结果,包括打印以验证它是否有效。如果您想编辑,可以通过编辑按钮免费创建一个帐户。