java - 无法单击网站上的少数链接,其余其他链接可以使用 Selenium 单击

标签 java selenium selenium-webdriver

我试图显示 google.com 网站上的所有链接,显示链接后,我试图单击该网站上的每个链接。我的代码点击除

之外的所有链接 <小时/>

1) 广告 2) 商业 3)搜索如何工作

<小时/>

除上述链接外,网站上的其他链接也被点击,请告知。

我的代码-->

    driver.get("https://www.google.com");

    driver.findElement(By.xpath("//*[@id=\"viewport\"]/div[3]/div/div/a[2]")).click();

    Thread.sleep(5000);

    List<WebElement> links = driver.findElements(By.tagName("a"));

    System.out.println("Total links on the site :"+links.size());

    for(int i=0;i<links.size();i++)
    {
        String linksname=links.get(i).getText();
        if(!linksname.isEmpty())
        {
            System.out.println(linksname);
            //Thread.sleep(5000);
            links.get(i).click();
            driver.navigate().back();
            links = driver.findElements(By.tagName("a"));

        }
    }

最佳答案

@Bimlesh 在您尝试时,DOM 中的某些元素可能无法单击。单击之前使用“显式等待”而不是 Thread.sleep。这将解决您的问题。 例如: WebDriverWait 等待 = new WebDriverWait(webDriver, timeoutInSeconds); wait.until(ExpectedConditions.elementToBeClickable(elementName));

关于java - 无法单击网站上的少数链接,其余其他链接可以使用 Selenium 单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60344004/

相关文章:

java - 连接两个流的 NullSafe 方法是什么?

java - 使用子域的负载平衡/TCP 端口转发

java - 清除所有已安装应用程序的缓存

java - Selenium - 尝试单击多个 "Remove"按钮,但出现 StaleElementReferenceException

java - 我如何从 JBehave 中的不同文件夹加载故事文件

java - ANTLR - 语法和树语法之间的 token 枚举不匹配

selenium - 如果应用程序不支持隐式等待或显式等待,我们如何放置等待?我在我的例子中使用 Thread.sleep()

java - 如何在 List<WebElement> 中找到元素(尽可能快)

Selenium Webdriver 悬停不起作用

java - Selenium - 如何获取在窗口中打开的选项卡数量?