【问题标题】:Page reloads after submitting the 2captcha token提交 2captcha 令牌后页面重新加载
【发布时间】:2021-09-20 14:10:21
【问题描述】:

我正在尝试使用 selenium 在 Twitter 上注册并使用 2captcha API 来解决验证码,但由于某种原因,当单击继续时页面刷新并且没有继续

        captchaInput = twitter_driver.find_element_by_id('g-recaptcha-response')
        print("Text area set to visible")
        twitter_driver.execute_script("arguments[0].setAttribute('style','display:visible;');", captchaInput)
        time.sleep(5)
        print("Entering captcha token")
        captchaInput.send_keys(captcha_token)
        time.sleep(5)
        button_click = "javascript:document.getElementById('continue_button').click();"
        twitter_driver.execute_script(button_click)

【问题讨论】:

    标签: python python-3.x selenium selenium-webdriver 2captcha


    【解决方案1】:

    如果您使用 Python 编写代码,请尝试这样做

    wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '#your selector'))).click()
    

    写得很好https://selenium-python.readthedocs.io/locating-elements.html#:~:text=content%20%3D%20driver.find_element_by_css_selector(%27p.content%27)

    如果您不尝试更详细地描述错误

    【讨论】:

    • 元素被隐藏了,所以我用JS点击它,另一方面我也尝试button = twitter_driver.find_element_by_xpath("//input[@id='continue_button']") twitter_driver.execute_script("arguments[0].setAttribute('style','display:visible;')", button)然后点击它
    • 始终使用 css 选择器
    • 我无法使用 css 选择器访问此元素,因为它的显示为 none 并且引发了 NoSuchElementException
    • 是的,它不会做任何事情,因为它是隐藏的
    • 当我手动解决验证码后,它就会变得可见,我认为这是callback captcha 之一,如果是,那么我需要找到回调函数
    【解决方案2】:

    所以回答我自己的问题只是为了记录,twitter 使用回调验证码,所以即使你通过 JS 点击提交按钮,未解决的验证码也会重新加载页面

    这个gist帮助我解决了验证码问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-04
      • 2013-08-18
      • 1970-01-01
      • 2015-01-17
      • 2013-12-28
      • 2018-10-15
      • 2013-11-19
      • 2021-11-12
      相关资源
      最近更新 更多