如何使用Selify和Python绕过带有Buster扩展的ReCaptcha
问题描述
目前,我使用Selify自动化了一些流程,需要解决Google ReCaptcha。用来解决ReCaptcha的技术是浏览器,即插件Buster。我使用以下内容进入Google ReCaptcha
driver.switch_to.frame(driver.find_elements_by_tag_name("iframe")[0])
check_box = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, "recaptcha-anchor")))
check_box.click()
现在我使用以下命令切换回默认帧:
driver.switch_to.default_content()
所以我需要单击Buster图标,但如何操作?
点击图标:
解决方案
Buster图标在另一个同级<iframe>
中。因此,您必须:
切换回default_content()。
诱导WebDriverWait使所需的帧可用并切换到它。
诱导WebDriverWait使所需的元素可单击。
您可以使用以下Locator Strategies:
代码块:
from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC driver.switch_to.default_content() WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"//iframe[@title='recaptcha challenge']"))) WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//button[@id='solver-button']"))).click()
浏览器快照:
参考
您可以在以下位置找到几个相关讨论:
- How to interact with the reCAPTCHA audio element using Selenium and Python
- How to send text to the Password field within https://mail.protonmail.com registration page?
OUTIO
Ways to deal with #document under iframe
相关文章