Python中使用nodriver点击reCAPTCHA复选框的问题求助
使用nodriver定位reCAPTCHA复选框的解决方案
nodriver支持iframe切换操作,和Selenium的逻辑一致——必须先切换到reCAPTCHA所在的iframe上下文,才能定位到内部的锚点元素。
你可以修改代码如下:
# 定位reCAPTCHA对应的iframe iframe_element = await twitch_tab.select('iframe[title="reCAPTCHA"]') # 切换到该iframe的上下文 await twitch_tab.switch_to.frame(iframe_element) # 等待并定位复选框容器 anchor_container = await twitch_tab.wait_for('div[id="rc-anchor-container"]') # 点击复选框 await anchor_container.click() # 若后续需要操作主页面元素,记得切回主文档 # await twitch_tab.switch_to.default_content()
注意事项:
- 如果
select()返回的是元素列表(比如页面有多个同名iframe),需要取第一个匹配的元素,比如iframe_element[0] - 切换iframe前确保它已经完全加载,避免因元素未就绪导致的定位失败
- 操作完iframe内的元素后,务必切回主上下文,否则后续主页面元素的定位会失败
内容的提问来源于stack exchange,提问作者yarin Cohen
相关产品推荐
相关产品推荐

