我正在使用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方法对我有效