Ara*_*rav 7 selenium selenium-chromedriver shadow-dom
我正在研究一个广泛使用阴影dom的自动化项目.所以每次使用execute_script函数来访问shadow root
例如.
root = driver.execute_script('return document.querySelector(".flex.vertical.layout").shadowRoot')
Run Code Online (Sandbox Code Playgroud)
然后使用root访问其中的元素.由于我们在很多层面都有影子根源,这让我很烦恼.是否有比这更好的解决方案来访问阴影根中的元素?
我正在使用Chrome 2.20驱动程序.
通过谷歌搜索,我找到了解决此问题的另一种方法-使用“ / deep / combinator”。
例如,我能够通过以下方式访问所有阴影根元素
driver.find_elements_by_css_selector('body / deep / .layout.horizontal.center')
这将可以访问具有复合类名称“布局水平中心”的元素,而不管其阴影根的数量如何。
但这仅在chrome驱动程序中有效,我看到注释“ / deep /”已被弃用。
WebDriver 规范仍然没有任何关于Shadow DOM 的具体内容。
Selenium项目页面也没有——这是可以理解的,因为它们严格遵循规范。然而,存在一些低级代码。
所以,简短的回答是:不,目前在规范、Selenium 的 WebDriver API 或实现代码中没有特殊支持。
是的,该功能似乎存在于 ChromeDriver 2.14 中(作为 Chrome 的包装器)。但是,据我所知,没有 Selenium 或 WebDriver 级别的绑定可供您使用它。
但有关更多详细信息和可能的解决方法,另请参阅:使用 Selenium 访问 Shadow DOM 树,还有:访问 Shadow DOM 中的元素,尤其是:在 Shadow DOM 中查找元素
| 归档时间: |
|
| 查看次数: |
9427 次 |
| 最近记录: |