首页 > 解决方案 > 无法在 chrome 浏览器的设置弹出窗口中找到 Web 元素

问题描述

我正在尝试清除浏览器缓存,为此我需要单击浏览器设置弹出窗口的清除数据按钮,但是,我无法为 chrome 浏览器上的按钮编写 xpath

我已经尝试检查元素以找出按钮是否在 iframe 上但它不在 iframe 中,所以我决定尝试使用没有 iframe 片段的任何一种方式,元素都不会在 dom 中跟踪

    public void clearBrowserCache() throws InterruptedException{
    driver.get("chrome://settings/clearBrowserData");
    Thread.sleep(2000);
    System.out.println(driver.getWindowHandles());
    String windowIds=driver.getWindowHandle();

   // driver.switchTo().frame(windowIds);
      driver.findElement(By.cssSelector(
      [id=clearBrowsingDataConfirm]")).click();

    }

预期是我应该能够单击清除数据按钮实际上是我无法找到元素的 xpath

标签: seleniumselenium-webdriver

解决方案


我在另一个问题中回答了如何进入 Shadow DOM 内部。

您可以在链接上阅读整个内容,但基本内容是您通过 JavaScript 在 Shadow DOM 上创建一个“起点”WebElement,然后所有未来的查找都会引用它:

WebElement button = startingPoint.findElement(By.cssSelector("..."));

推荐阅读