如何点击闭合阴影DOM下的按钮?

2022-04-14 00:00:00 python selenium button selector shadow-dom

问题描述

我希望访问该按钮,但关闭的阴影DOM阻止了我,我如何将其切换为打开并可以访问此按钮?

数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">
<div class="button-holder help-button-holder">
  #shadow-root (closed)
    <link rel="stylesheet" href="chrome-extension://mpbjkejclgfgadiemmefgebjfooflfhl/src/solve/solver-button.css">
    <button tabindex="0" title="Solve the challenge" id="solver-button"></button>
</div>


解决方案

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(".button-holder.help-button-holder"))
inner = outer.find_element_by_xpath(".//button[@id='solver-button']")
inner.click()

您可以执行以下操作以单击卷影根内的元素。

相关文章