考虑以下用于通过上次登录的cookie通过gmail登录gmail的功能:
def load_cookies(matcher):
cookie_jar = self.cookie_file
if cookie_jar.is_file():
print("############## Found cookie. Loading... ####################")
cookies = pickle.load(open(self.cookie_file, "rb"))
for cookie in cookies:
pprint(cookie)
if cookie['domain'] == matcher:
self.browser.add_cookie(cookie)
self.browser.refresh()
我使用匹配器,因为如果不使用匹配器,则会得到“可能仅为当前域(accounts.google.com)设置Cookie”。但是,如果我将matcher
设置为.google.com
,它将不会自动登录。我相信这是因为gmail成功登录后会为多个Google子域(例如mail.google.com)设置cookie,然后对其进行检查。
这是一个问题,因为我们无法为未访问的子域设置Cookie,并且如果我们尝试访问一个子域,则Google会立即将我们重定向回account.google.com。我们无法禁用javascript,因为它需要重新加载Web驱动程序才能重新启用它。
任何人都可以演示仅使用Cookie登录gmail吗?我正在使用geckodriver,尽管没关系。