无法使用 Cookie 登录 Gmail



我正在使用Selenium网络驱动程序登录到我的谷歌帐户,然后保存cookie,然后打开第二个网络驱动程序使用这些cookie登录。出于某种原因,我可以访问我的Google云端硬盘和除Gmail之外的所有其他帐户。在我设置cookie并尝试访问我的gmail后,它会显示一个登录页面。

#####login and save cookies 
w = webdriver.Chrome()
w.get("https://accounts.google.com/signin/v2/identifier?hl=en&passive=true&continue=https%3A%2F%2Fwww.google.com%2F%3Fgws_rd%3Dssl&flowName=GlifWebSignIn&flowEntry=ServiceLogin")
email = w.find_element_by_xpath("//input[@type = 'email']")
email.send_keys('USERNAME@gmail.com')
email.send_keys(Keys. ENTER)
password = w.find_element_by_xpath("""//input[@type="password"]""")
password.send_keys('PASSWORD')
password.send_keys(Keys.ENTER)
next_click = w.find_element_by_css_selector("[class = 'RveJvd snByac']").click()
w.get('https://accounts.google.com/')
pickle.dump(w.get_cookies() , open("google_cookies.pkl","wb")) #saving cookies
##### opening second driver
second_driver = webdriver.Chrome() 
second_driver.get("https://www.google.com")
cookies = pickle.load(open("google_cookies.pkl", "rb")) #using the cookies
for cookie in cookies:
if 'expiry' in cookie:
cookie['expiry'] = int(cookie['expiry'])
second_driver.add_cookie(cookie)
second_driver.get("https://myaccount.google.com/") #after the cookies are set and I try to access my gmail it presents a login page again.
second_driver.refresh()

这对我有用!!只需将secure指定为Falsedomain分配为google.com即可。

for cookie in cookies:
cookie_copy=cookie
cookie_copy["secure"]=False
cookie_copy["domain"]="google.com"
driver.add_cookie(cookie_copy)

最新更新