Google登录在无头模式下工作,但不在无头模式下工作

人气:405 发布:2022-10-16 标签: selenium python-3.x google-signin selenium-chromedriver

问题描述

我正在尝试使用带有chromedrive的python Selify登录到我的Google帐户, 代码可以工作,但不能在无头模式下工作。在HM中,我得到了从未出现过的标识ID:(

编辑:添加缺少--禁用-GPU

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()

是否应在非无头模式下登录

推荐答案

我总是传递以下参数、测试并正常工作:

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')

283