无法在Chrome浏览器的设置弹出窗口中找到Web元素

时间:2019-05-29 13:26:34

标签: selenium selenium-webdriver

我正在尝试清除浏览器缓存,为此我需要单击浏览器设置弹出窗口的清除数据按钮,但是我无法在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

2 个答案:

答案 0 :(得分:0)

这取决于您使用的是哪个版本的chrome,

driver.findElement(By.cssSelector("* /deep/ #clearBrowsingDataConfirm")).click();

但是不推荐使用/deep/组合器,因此它可能不适用于更新的Chrome版本。

答案 1 :(得分:0)

我回答了如何通过other question到达Shadow DOM内部。

您可以在链接上阅读全部内容,但是基础是您通过JavaScript在Shadow DOM上创建一个“起点” WebElement,然后所有以后的查找都将其引用:

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