I am currently building a reporting tool with Selenium on Adwords. (And no, I cannot use Google's API because it doesn't provide the functionality I want).
I am trying to avoid logging in and logging out, because I understand frequent logins and logouts are not as convenient as cookie based authentication.
I have the following code: save.py
try:
driver = webdriver.Chrome()
driver.get('https://adwords.google.com')
time.sleep(90)
# Manually login to adwords page and wait
pickle.dump( driver.get_cookies() , open("cookies.pkl","wb"))
finally:
driver.close()
And this: load.py
try:
driver = webdriver.Chrome()
cookies = pickle.load(open("cookies.pkl", "rb"))
for cookie in cookies:
driver.add_cookie(cookie)
driver.get('https://adwords.google.com/')
time.sleep(60)
finally:
driver.close()
When I first run load.py, I am actually able to see the spinner that shows up when one logs into Adwords. Shortly after however, I get logged out!
I don't know what is causing Google's authentication system to log me out. What do you think is the cause of this?
Code Repo: https://gist.github.com/anonymous/63d32e49f59a09ab82fac1f9f972d555
The method
driver.add_cookie
works for the current domain only. So you'll first have to set the domain withdriver.get(...)
before callingdriver.add_cookie
:Or by calling the devtool API to save/restore the cookies for all the domains (Chrome only):