首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >google登录不使用headless模式,但不使用headless模式

google登录不使用headless模式,但不使用headless模式
EN

Stack Overflow用户
提问于 2019-10-30 04:10:06
回答 3查看 824关注 0票数 1

我正在尝试使用python selenium和chromedriver登录到我的google帐户,代码可以工作,但不是在无头模式下。在hm中,我得到了identifierId从不出现:(

编辑:添加缺少的--禁用--gpu

代码语言:javascript
复制
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--headless')
chrome_options.add_argument('--window-size=1920,1080')

def do_login(email, password):
    driver = webdriver.Chrome(chrome_options=chrome_options)
    driver.get('https://accounts.google.com/signin/v2/identifier?flowName=GlifWebSignIn&flowEntry=ServiceLogin')
    email_phone = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//input[@id='identifierId']")))
    email_phone.send_keys(email)
    driver.find_element_by_id("identifierNext").click()
    pw = WebDriverWait(driver, 5).until(
        EC.element_to_be_clickable((By.XPATH, "//input[@name='password']"))
    )
    pw.send_keys(password)
    driver.find_element_by_id("passwordNext").click()
    time.sleep(2)
    print(driver.title)
    driver.close()

应该像在非headless模式下一样登录

EN

回答 3

Stack Overflow用户

发布于 2019-10-30 04:12:21

您还必须将--disable-gpu添加到您的chrome选项中。

代码语言:javascript
复制
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--window-size=1920,1080')
chrome_options.add_argument('--disable-gpu')

这就是我必须添加的,以使我的无头代码完全工作。

票数 0
EN

Stack Overflow用户

发布于 2019-10-30 04:47:09

我总是传递下面的参数,测试和工作:

代码语言:javascript
复制
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--headless')
chrome_options.add_argument('--window-size=1920,1080')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--start-maximized')
chrome_options.add_argument('--disable-setuid-sandbox')
票数 0
EN

Stack Overflow用户

发布于 2019-10-30 04:33:55

此代码在无头模式下工作,但不能在启用gui的情况下工作。

代码语言:javascript
复制
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--headless')
chrome_options.add_argument('--window-size=1920,1080')

def do_login(email, password):
    driver = webdriver.Chrome(chrome_options=chrome_options)
    driver.get('https://accounts.google.com/signin/v2/identifier?flowName=GlifWebSignIn&flowEntry=ServiceLogin')
    email_phone = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, "Email")))
    email_phone.send_keys(email)
    driver.find_element_by_id("next").click()
    pw = WebDriverWait(driver, 5).until(
        EC.element_to_be_clickable((By.ID, "Passwd"))
    )
    pw.send_keys(password)
    driver.find_element_by_id("signIn").click()
    driver.close()
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58614691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档