使用硒,我们可以通过这种方式访问它:
def expand_shadow_element(element):
shadow_root = driver.execute_script('return arguments[0].shadowRoot', element)
return shadow_root
outer = expand_shadow_element(driver.find_element_by_css_selector("#test_button"))
inner = outer.find_element_by_id("inner_button")
inner.click()
所以以类似的方式,我试图使用空手道找到 在.js文件中,编写以下代码
expand_shadow_element(element):
shadow_root = driver.execute_script('return arguments[0].shadowRoot', element)
return shadow_root**
//And call the .js file in feature file by below code:
def ele = expand_shadow_element(locate('#drawerPanel'))
但它对我不起作用.
只需使用script()
即可轻松触发页面中的任何任意 JS。
下面是一个示例:https://stackoverflow.com/a/60618233/143475
* script('hangout-module', "_.shadowRoot.querySelector('button').click()")