所以,我试图用 Selenium 登录这个网站:
https://carrinho.pontofrio.com.br/Checkout?ReturnUrl=%2fSite%2fMeusPedidos.aspx#login
我正在使用反验证码,这是我的登录代码:
my_driver = webdriver.Chrome(executable_path=chrome_path)
wait = WebDriverWait(my_driver, 20)
#Realizar o Login
def login():
my_driver.get(url)
time.sleep(4)
my_driver.find_element_by_id('Email').send_keys(usuario)
my_driver.find_element_by_id('Senha').send_keys(senha)
my_driver.find_element_by_id('Senha').send_keys(Keys.ENTER)
time.sleep(1)
solver = recaptchaV2Proxyless()
solver.set_verbose(1)
solver.set_key("")
solver.set_website_url('https://carrinho.pontofrio.com.br/Checkout?ReturnUrl=%2fSite%2fMeusPedidos.aspx#login')
solver.set_website_key("6LfeX6kZAAAAAIhuSyQ1XRwZdOS26O-r4UJbW3y1")
# solver.set_data_s('"data-s" token from Google Search results "protection"')
g_response = solver.solve_and_return_solution()
if g_response != 0:
print("g-response: " + g_response)
else:
print("task finished with error " + solver.error_code)
time.sleep(1)
my_driver.execute_script('document.getElementById("g-recaptcha-response").innerHTML = "%s"' % g_response)
time.sleep(1)
my_driver.execute_script(f"callbackCaptcha('{g_response}');")
login()
网站密钥正确,但网站不接受我的验证码回复。因此,我尝试使用开发人员工具检查登录过程是如何发生的,它是这样的:
回调函数发生在我不知道它调用网站的函数之后: https ://www.google.com/recaptcha/api2/userverify?k=6LfeX6kZAAAAAIhuSyQ1XRwZdOS26O-r4UJbW3y1
而且我无法找到模拟这种 post 方法的方法,因为 Selenium 不执行 post 方法。
无论如何,我可以在运行页面时收听所有 Javascript 事件(调用的代码)吗?
任何帮助将不胜感激,谢谢!
我能够使用以下代码解决验证问题:
options.add_argument('--disable-blink-features=AutomationControlled')
但是反验证码仍然给我一个错误的答案:(