如何使用 Selenium 和 Python 单击#shadow-root(已关闭)内的按钮
我正在尝试单击 iframe 内的 #shadow-root (close)
内的按钮
<iframe title="recaptcha challenge expires in two minutes"
<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>
</iframe>
这是我用来切换到 iframe 的按钮
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//iframe[@title='recaptcha challenge expires in two minutes']")))
如何单击 //button[@id="solver -button"]
以下是 iframe 实际外观的照片
-链接
按钮-<一个href="https://i.sstatic.net/Zpyu3.jpg" rel="noreferrer">链接
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您切换到
的代码行非常完美。但是,所需的元素位于 #shadow-root (close)< /a> 并使用 Selenium 你将无法与 #shadow-root(已关闭) 因为根据 Shadow DOM 遍历支持:
Your line of code to switch to the
<iframe>
was perfect. However, the desired element is within a #shadow-root (closed) and using Selenium you won't be able to interact with the elements within #shadow-root (closed) because as per the discussion in Shadow DOM traversal support: