如何在Python中使用Selenium登录后保持会话?

时间:2016-01-07 10:28:35

标签: python selenium

我在Python 3.4中使用Selenium成功登录了网站 登录过程如下:

browser = webdriver.PhantomJS()
browser.get('url')

emailElem = self.browser.find_element_by_name('user_id')
emailElem.send_keys(user_id)

passwordElem = self.browser.find_element_by_name('password') 
passwordElem.send_keys(user_pwd)

passwordElem.submit()

登录后,我尝试访问需要登录会话的某个页面,

browser.get('login-session-required-page-url')

它失去了会话而不允许访问。

我认为这与会话和cookie有关,但我不知道如何处理它。

1 个答案:

答案 0 :(得分:0)

在主流浏览器上成功登录后,String括号内的browser.get对象是否为功能网址?

如果您要手动登录而不是通过selenium登录,则您要访问的新网址(要求用户登录的网址)应该是browser.get中的字符串网址。

您的代码存在一些潜在问题。您未通过submit()和下一个browser.get()提交任何等待时间。

考虑在两者之间添加10到30秒的等待:

passwordElem.submit()

browser.implicitly_wait(10)

browser.get('https://www.YourSite.com/LoggedIn/User/SomeNewPageThatRequiresBeingSignedIn/')

另一种可能性是,登录后访问的URL对于仅在最近登录的会话中提供的cookie是唯一的。尝试在不同时间通过不同浏览器查看多个登录时URL是否完全相同。您可能每次登录时都会获得一个唯一的URL。