我从付费服务收到了 reCaptcha 的令牌。现在我尝试将此令牌传递到 reCaptcha 形式。
self.browser.get('https://visa.vfsglobal.com/rus/en/fra/login')
self.browser.find_element(By.ID, 'mat-input-0').send_keys('login')
self.browser.find_element(By.ID, 'mat-input-1').send_keys('password')
self.browser.execute_script("document.getElementById('g-recaptcha-response').style.removeProperty('display');")
self.browser.execute_script(f"document.getElementById('g-recaptcha-response').innerHTML = '{code}'")
self.browser.execute_script('var element=document.getElementById("g-recaptcha-response"); element.style.display="none";')
submit_btn = self.browser.find_element(By.XPATH, "//button[contains(@class, 'mat-focus-indicator')]")
submit_btn.click()
但是我收到“必填字段不能留空”错误。 另外,我尝试了这段代码:
recaptcha_response_element = self.browser.find_element(By.XPATH, '//*[@id="g-recaptcha-response"]')
self.browser.execute_script(f'arguments[0].value = "{code}";', recaptcha_response_element)
这个也有同样的结果。 我能做些什么?请帮忙!
您尝试过这种方法吗?
recaptcha_response_element.set_attribute("value", code)
self.browser.execute_script(f'document.getElementById("g-recaptcha-response").setAttribute("value", "{code}"')
self.browser.execute_script('arguments[0].setAttribute("value",arguments[1])',element, code)
对于留空的必填字段,请检查是否缺少其他字段。有时会有未实现的反射数据,因为页面状态操作可以避免触发某些侦听器。
你找到答案了吗? 我找到了解决方法。我们可以使用 rucaptcha chrome 扩展来解析验证码。这个扩展添加按钮来解决验证码,我们可以使用selenium点击这个按钮。