在通过Selenium访问url chrome:// settings / clearBrowserData时出现的清除浏览数据弹出窗口中找到清除数据按钮的过程中,我无法找到以下元素:
#shadow-root (open)
快照:
使用Selenium以下是我的代码试验和遇到的相关错误:
>尝试1:
WebElement root5 = shadow_root4.findElement(By.tagName("settings-privacy-page"));
>错误:
Exception in thread "main" org.openqa.selenium.JavascriptException: javascript error: b.getElementsByTagName is not a function
>尝试2:
WebElement root5 = shadow_root4.findElement(By.cssSelector("settings-privacy-page"));
>错误:
Exception in thread "main" org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"settings-privacy-page"}
>尝试3:
WebElement root5 = (WebElement)((JavascriptExecutor)shadow_root4).executeScript("return document.getElementsByTagName('settings-privacy-page')[0]");
>错误:
Exception in thread "main" java.lang.ClassCastException: org.openqa.selenium.remote.RemoteWebElement cannot be cast to org.openqa.selenium.JavascriptExecutor
如果它有用,初始代码块(直到上面的行)完美运行:
driver.get("chrome://settings/clearBrowserData");
WebElement root1 = driver.findElement(By.tagName("settings-ui"));
WebElement shadow_root1 = expand_shadow_element(root1);
WebElement root2 = shadow_root1.findElement(By.cssSelector("settings-main#main"));
WebElement shadow_root2 = expand_shadow_element(root2);
WebElement root3 = shadow_root2.findElement(By.cssSelector("settings-basic-page[role='main']"));
WebElement shadow_root3 = expand_shadow_element(root3);
WebElement root4 = shadow_root3.findElement(By.cssSelector("settings-section[page-title='Privacy and security']"));
WebElement shadow_root4 = expand_shadow_element(root4);
PS:expand_shadow_element()完美无瑕.
有人可以帮帮我吗?
本文由 投稿者 创作,文章地址:https://blog.isoyu.com/archives/shiyongcssselectorqingchuchromeliulanqideliulanshujushi.html
采用知识共享署名4.0 国际许可协议进行许可。除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为:9 月 18, 2019 at 06:44 下午