Skip to content

Instantly share code, notes, and snippets.

@ikegami-yukino
Created June 12, 2015 09:26
  • Star 54 You must be signed in to star a gist
  • Fork 7 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save ikegami-yukino/51b247080976cb41fe93 to your computer and use it in GitHub Desktop.
Automatically Google login by selenium
mail_address = ''
password = ''
from selenium import webdriver
UA = 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0'
PHANTOMJS_ARG = {'phantomjs.page.settings.userAgent': UA}
driver = webdriver.PhantomJS(desired_capabilities=PHANTOMJS_ARG)
url = 'https://www.google.com/accounts/Login?hl=ja&continue=http://www.google.co.jp/'
driver.get(url)
driver.find_element_by_id("Email").send_keys(mail_address)
driver.find_element_by_id("next").click()
driver.find_element_by_id("Passwd").send_keys(password)
driver.find_element_by_id("signIn").click()
@furkanaydgn
Copy link

Hi @ochen1 Can you please add me on Discord... i'd like to know your solution, i will explain why i need it, Thanks Discord : yhache#8537

Did you find any solution ?

@Yhache
Copy link

Yhache commented Nov 22, 2021 via email

@kicktheken
Copy link

I've created a script to help people automate Google login here: https://github.com/crawlspec/google-login

It only needs the phone number for 2FA on first use. Subsequent uses will be 'trusted' by the service. It's written in puppeteer javascript. I can write a python selenium version if there's demand. Let me know if it works for you or post in the project's 'Issues' tab for any questions.

@Krzysiek191
Copy link

@kicktheken
I would appreciate a python selenium version.

@Fakesum
Copy link

Fakesum commented Feb 25, 2023

Current Best Method for google login is:

from seleniumbase import SB

with SB(uc=True) as driver:
    driver.get("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")
    driver.type("#identifierId", <Your Username Here>)
    driver.click("#identifierNext > div > button")

    driver.type("#password > div.aCsJod.oJeWuf > div > div.Xb9hP > input", <Password Here>)
    driver.click("#passwordNext > div > button")

    driver.save_screenshot("test.png")

I can't figure out how to make the window show though.

@X-Cotang
Copy link

X-Cotang commented Feb 25, 2023

Current Best Method for google login is:

from seleniumbase import SB

with SB(uc=True) as driver:
    driver.get("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")
    driver.type("#identifierId", <Your Username Here>)
    driver.click("#identifierNext > div > button")

    driver.type("#password > div.aCsJod.oJeWuf > div > div.Xb9hP > input", <Password Here>)
    driver.click("#passwordNext > div > button")

    driver.save_screenshot("test.png")

I can't figure out how to make the window show though.

it worked.

@Fakesum
Copy link

Fakesum commented Mar 23, 2023

Use This if you want head-full mode.

from seleniumbase import SB

with SB(uc=True, headed=True) as driver:
    driver.get("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")
    driver.type("#identifierId", <Your Username Here>)
    driver.click("#identifierNext > div > button")

    driver.type("#password > div.aCsJod.oJeWuf > div > div.Xb9hP > input", <Password Here>)
    driver.click("#passwordNext > div > button")

    driver.save_screenshot("test.png")

@362227
Copy link

362227 commented Aug 18, 2023

Use This if you want head-full mode.

from seleniumbase import SB

with SB(uc=True, headed=True) as driver:
    driver.get("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")
    driver.type("#identifierId", <Your Username Here>)
    driver.click("#identifierNext > div > button")

    driver.type("#password > div.aCsJod.oJeWuf > div > div.Xb9hP > input", <Password Here>)
    driver.click("#passwordNext > div > button")

    driver.save_screenshot("test.png")

This browser or app may not be secure.

@9velluru
Copy link

Requesting to provide some sample synthetic jobs that handle sign in page functionality. Please do the needful

@raihans8379
Copy link

raihans8379 commented Jan 16, 2024

@Fakesum Does this method only work locally? I am trying to standup some tests on jenkins but after entering the password this way, I'm then redirected to https://accounts.google.com/v3/signin/challenge/iap and cannot complete the auth flow.

works well locally though

EDIT: https://accounts.google.com/v3/signin/challenge/iap is a 2FA challenge for accounts that don't have 2FA enabled, to set it up in-line. Likely will need to forward proxy and that potentially won't help either.

@ozsoyhasan
Copy link

@Fakesum Does this method only work locally? I am trying to standup some tests on jenkins but after entering the password this way, I'm then redirected to https://accounts.google.com/v3/signin/challenge/iap and cannot complete the auth flow.

works well locally though

Same here.

@Fakesum
Copy link

Fakesum commented Mar 16, 2024

@Fakesum Does this method only work locally? I am trying to standup some tests on jenkins but after entering the password this way, I'm then redirected to https://accounts.google.com/v3/signin/challenge/iap and cannot complete the auth flow.

works well locally though

EDIT: https://accounts.google.com/v3/signin/challenge/iap is a 2FA challenge for accounts that don't have 2FA enabled, to set it up in-line. Likely will need to forward proxy and that potentially won't help either.

This works locally for me, it does give me a warning of suspicious activity but thats after logging in. try changing the url to "https://accounts.google.com/signin" since this will redirect to oauth v3 login screen instead of the old oauth v2 one.

@imbatman802
Copy link

@Fakesum Does this method only work locally? I am trying to standup some tests on jenkins but after entering the password this way, I'm then redirected to https://accounts.google.com/v3/signin/challenge/iap and cannot complete the auth flow.
works well locally though
EDIT: https://accounts.google.com/v3/signin/challenge/iap is a 2FA challenge for accounts that don't have 2FA enabled, to set it up in-line. Likely will need to forward proxy and that potentially won't help either.

This works locally for me, it does give me a warning of suspicious activity but thats after logging in. try changing the url to "https://accounts.google.com/signin" since this will redirect to oauth v3 login screen instead of the old oauth v2 one.

hey bro, can i contact you somewhere else? i really need your help

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment