繁体   English   中英

框架切换以单击一个框(Python Selenium)

[英]Frame Switch to click on a Box (Python Selenium)

我在尝试使用Selenium on Python自动化浏览器时遇到问题。 我已经屏蔽了几个小时,因为我是初学者.. :(

我解释我的问题:我必须点击一个Recaptcha框。 为此,我的机器人必须单击该站点上的一个按钮,然后显示我必须验证的Recaptcha。 这是源页面的屏幕截图:

复选框所在的Recaptcha的弹出窗口

我必须单击的复选框的位置

我尝试以下代码:

time.sleep(5)
browser.switch_to_frame(browser.find_element_by_tag_name("CaptchaPopup"))
browser.switch_to_frame(browser.find_element_by_tag_name("iframe"))
CheckBox = WebDriverWait(browser, 10).until(
        browser.find_element_by_id('recaptcha-anchor').click())


time.sleep(0.7)  
CheckBox.click()

但是后者给我一个错误:(

selenium.common.exceptions.NoSuchFrameException: Message: no such frame

我使用Python 2.7。 你有解决方案吗 ? 提前非常感谢您!

尝试使用以下代码来处理所需的复选框:

from selenium.webdriver.support.ui import WebDriverWait as wait
from selenium.webdriver.support import expected_conditions as EC

wait(browser, 10).until(EC.frame_to_be_available_and_switch_to_it(browser.find_element_by_xpath('//iframe[contains(@src, "google.com/recaptcha")]')))
wait(browser, 10).until(EC.element_to_be_clickable((By.ID, 'recaptcha-anchor'))).click()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM