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