如何在Selenium中保存浏览器会话?

时间:2020-08-13 16:31:38

标签: python selenium session cookies

我正在使用Selenium登录帐户。登录后,我想保存该会话并在下次运行python脚本时再次访问它,因此不必再次登录。基本上我想让chrome驱动程序像真正的Google chrome一样工作,其中保存了所有cookie /会话。这样,我不必每次运行都登录到该网站。

browser.get("https://www.website.com")
browser.find_element_by_xpath("//*[@id='identifierId']").send_keys(email)
browser.find_element_by_xpath("//*[@id='identifierNext']").click()
time.sleep(3)
browser.find_element_by_xpath("//*[@id='password']/div[1]/div/div[1]/input").send_keys(password)
browser.find_element_by_xpath("//*[@id='passwordNext']").click()
time.sleep(5)

2 个答案:

答案 0 :(得分:1)

正如@MohamedSulaimaanSheriff所建议的那样,您可以在selenium中使用您的个人Chrome配置文件打开Chrome。为此,此代码将起作用:

options = webdriver.ChromeOptions()
options.add_argument(r'--user-data-dir=C:\Users\YourUser\AppData\Local\Google\Chrome\User Data\')
PATH = "/Users/yourPath/Desktop/chromedriver"
driver = webdriver.Chrome(PATH, options=options)

当然,您可以通过创建新的User Data并替换路径来为脚本设置额外的User Data Directory。确保复制现有的User Data,以确保不会引起任何错误。之后,您可以在Chrome本身中重置它们。

答案 1 :(得分:0)

这是我使用的解决方案:

# I am giving myself enough time to manually login to the website and then printing the cookie
time.sleep(60)
print(driver.get_cookies())

# Than I am using add_cookie() to add the cookie/s that I got from get_cookies()
driver.add_cookie({'domain': ''})

这可能不是实现它的最佳方法,但它正在执行我一直在寻找的事情

相关问题