我正在使用python中的selenium,并尝试在chrome中自动化google登录,但我遇到了一个问题

我正在使用python中的selenium,并尝试在chrome中自动化google登录,但我遇到了一个问题,python,selenium,Python,Selenium,它给出了一个无法登录的错误 请帮助我使用此链接: https://accounts.google.com/o/oauth2/v2/auth/oauthchooseaccount?redirect_uri=https%3A%2F%2Fdevelopers.google.com%2Foauthplayground&prompt=consent&response_type=code&client_id=407408718192.apps.googleusercontent.c

它给出了一个无法登录的错误

请帮助我使用此链接:

https://accounts.google.com/o/oauth2/v2/auth/oauthchooseaccount?redirect_uri=https%3A%2F%2Fdevelopers.google.com%2Foauthplayground&prompt=consent&response_type=code&client_id=407408718192.apps.googleusercontent.com&scope=email&access_type=offline&flowName=GeneralOAuthFlow
我不知道问题出在哪里,但谷歌有自己的安全协议,很难绕过它

要使用它,您必须关闭两步验证和其他帐户安全。就我而言,当我尝试登录时,第一次有5-6次它要求我通过点击智能手机中的一个号码进行验证(希望你知道那是什么),然后它对我来说工作正常

现在,如果您想避免错误,可以在selenium中使用显式等待

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as ec

WebDriverWait(driver, 100).until(ec.visibility_of_element_located((By.XPATH, '###')))
#Place the xpath of  you element in place of ###
通过使用此选项,您可以让selenium等待元素加载,然后继续

若问题继续出现,您可以使用第三方站点登录,这包括堆栈溢出

from selenium import webdriver 
from time import sleep

username=raw_input("username: ") 
password=raw_input("password: ") 
driver=webdriver.Chrome('...')  #path of your chrome driver         
driver.get('https://stackoverflow.com/users/signup') 
sleep(3) 
driver.find_element_by_xpath('//*[@id="openid-buttons"]/button[1]').click() 
driver.find_element_by_id('identifierId').send_keys(username) 
driver.find_element_by_id('identifierNext').click() 
sleep(3) 
driver.find_element_by_name('password').send_keys(password) 
driver.find_element_by_id('passwordNext').click() 
sleep(2) 
driver.get('https://mail.google.com/mail/u/0/#inbox')

现在,您可以获取您的任何URL并继续。

这不应该起作用-谷歌将尽一切可能阻止此类登录,因为它可以选择用户的密码。stackoverflow方法对我有效