我在使用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。 你有解决方案吗 ? 非常感谢你提前!
答案 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()