代码之家  ›  专栏  ›  技术社区  ›  Speci

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

  •  0
  • Speci  · 技术社区  · 6 年前

    我正在使用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)
    
    0 回复  |  直到 6 年前
        1
  •  6
  •   Ruben Helsloot Rez    5 年前

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

    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 并替换路径。确保复制现有的 用户数据 确保你没有挑起任何错误。之后,你可以在Chrome中重置它们。

        2
  •  0
  •   Speci    6 年前

    这就是我使用的解决方案:

    # 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': ''})
    

    这可能不是实现它的最佳方式,但它正在实现我想要的