【发布时间】:2016-06-25 06:19:24
【问题描述】:
我目前正在自动化一个网站并进行一项检查“记住我”选项功能的测试。 我的测试脚本登录,输入有效的用户名和密码,并在单击登录按钮之前选中记住我复选框。
为了测试此功能,我使用 pickle 将 cookie 保存到文件中,关闭浏览器然后重新打开浏览器(加载 cookie 文件)。
def closeWebsite(self, saveCookies=False):
if saveCookies:
pickle.dump(self.driver.get_cookies(), open('cookies.pkl', 'wb'))
self.driver.close()
def openWebsite(self, loadCookies=False):
desired_caps = {}
desired_caps['browserName'] = 'firefox'
profile = webdriver.FirefoxProfile(firefoxProfile)
self.driver = webdriver.Firefox(profile)
self.driver.get(appUrl)
if loadCookies:
for cookie in pickle.load(open('cookies.pkl', 'rb')):
self.driver.add_cookie(cookie)
但是,当我这样做时,新的浏览器并没有登录。我知道每次你调用打开浏览器时都会创建一个新的会话,并且可以使用driver.session_id获取这个会话 ID
是否可以在 openWebsite 方法中加载驱动程序并指定 sessionID?
当我手动测试时,Remember Me 选项按预期工作。我只是无法理解 Selenium 如何处理这种情况。
【问题讨论】:
标签: python session selenium cookies selenium-webdriver