我在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有关,但我不知道如何处理它。
答案 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。