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

时间:2017-07-09 13:02:16

标签: python selenium click box

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

我解释我的问题: 我必须点击一盒Recaptcha。要做到这一点,我的机器人必须点击网站上的一个按钮,然后显示我必须验证的recaptcha。 以下是源页面截图:

The popup of the recaptcha, in which the checkbox is located

The location of the checkbox that I have to click

我试试这段代码:

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。 你有解决方案吗 ? 非常感谢你提前!

1 个答案:

答案 0 :(得分:0)

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

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()