【问题标题】:Can't click on google recaptcha checkbox (Python, Selenium)无法点击 google recaptcha 复选框(Python、Selenium)
【发布时间】:2021-03-15 15:55:41
【问题描述】:

Python 3.9.0、Selenium 3.141.0、Chromedriver 89.0.4389.23

HTML: DOM Structure Screenhot

我尝试了几种方法,例如:

    a = self.driver.switch_to.frame(self.driver.find_element_by_xpath('//iframe[contains(@src, "google.com/recaptcha")]'))
    b = self.driver.find_element_by_id("rc-anchor-container").click()
    c = self.driver.switch_to.default_content()

或完全相同,但使用 WebDriverWait 和不同的定位器(按类名 - recaptcha-checkbox-checkmark、recaptcha-checkbox-border)。结果,我得到了错误:

"message":**"element not interactable"** (about checkbox element, iframe successfully switched)

..\venv\lib\site-packages\selenium\webdriver\remote\webelement.py:80: in click
    self._execute(Command.CLICK_ELEMENT)
..\venv\lib\site-packages\selenium\webdriver\remote\webelement.py:633: in _execute
    return self._parent.execute(command, params)
..\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py:321: in execute
    self.error_handler.check_response(response)

self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x00000274AC6A5A60>
response = {'status': 400, 'value': '{"value":{"error":"element not interactable","message":"element not interactable\\n  (Sessio...\n\\tRtlGetAppContainerNamedObjectPath [0x77E57C7E+286]
\\n\\tRtlGetAppContainerNamedObjectPath [0x77E57C4E+238]\\n"}}'}

【问题讨论】:

    标签: python selenium selenium-webdriver


    【解决方案1】:

    您的错误来自这一行:

        b = self.driver.find_element_by_id("rc-anchor-container").click()
    

    我用 C# 编写了一个解决方案,但你会很容易理解并将其翻译成 Python:

    // Load a captcha test page
    driver.Url = "https://patrickhlauke.github.io/recaptcha/";
    // Switch to the recaptcha Iframe
    driver.SwitchTo().Frame(driver.FindElement(By.XPath("//iframe[@role='presentation']")));
    
    Thread.Sleep(2000);
    // Click on the box
    driver.FindElement(By.XPath("//div[@class='recaptcha-checkbox-border']")).Click(); 
    

    【讨论】:

    • 仍然“消息:元素不可交互”:(
    猜你喜欢
    • 1970-01-01
    • 2021-12-23
    • 2014-04-08
    • 1970-01-01
    • 2017-12-07
    • 1970-01-01
    • 2017-09-24
    • 2021-12-11
    • 1970-01-01
    相关资源
    最近更新 更多