【问题标题】:How to bypass ReCaptcha with buster extension using Selenium and Python如何使用 Selenium 和 Python 绕过带有 buster 扩展的 ReCaptcha
【发布时间】:2020-10-24 12:39:36
【问题描述】:

目前,我使用 selenium 自动化了一些流程,需要解决 Google ReCaptcha。用于解决 ReCaptcha 的技术是浏览器 Plugin 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 图标,但该怎么做呢?

要点击的图标:

【问题讨论】:

    标签: python selenium iframe recaptcha webdriverwait


    【解决方案1】:

    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()
      
    • 浏览器快照:


    参考

    您可以在以下位置找到一些相关讨论:


    结尾

    Ways to deal with #document under iframe

    【讨论】:

    • 求解器按钮现在位于封闭的影子 DOM 中。您的代码的最后一行不再起作用了。
    • @abbr 对封闭的影子 DOM 有什么想法吗?
    • @NamVu,我向 Buster github 提交了一个关于封闭影子 DOM 的问题。 buster 的作者回复 Buster 不是为自动化测试脚本设计的,并删除了问题单。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-01
    • 2018-05-22
    • 2011-03-31
    • 2023-03-31
    • 2020-05-14
    • 2020-03-11
    相关资源
    最近更新 更多