我在 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()
登录后,我试图访问需要登录 session 的特定页面,
browser.get('login-session-required-page-url')
它丢失了它的 session 并且不允许访问。
我认为这与 session 和cookie有关,但我不知道如何处理。
最佳答案
是你的String
browser.get
中的对象在主流浏览器上定期成功登录后,括号中的功能网址?
如果您要手动登录而不是通过 selenium,则您要访问的新 URL(要求用户已登录的 URL)应该是 browser.get
中的字符串 URL。 .
您的代码存在一些潜在问题。您没有指定通过 submit()
提交之间的任何等待时间和下一个browser.get()
.
考虑像这样在两者之间添加 10 到 30 秒的等待时间:
passwordElem.submit()
browser.implicitly_wait(10)
browser.get('https://www.YourSite.com/LoggedIn/User/SomeNewPageThatRequiresBeingSignedIn/')
另一种可能性是,您在登录后访问的 URL 对于仅在最近登录 session 中获得的 cookie 是唯一的。尝试查看在不同时间通过不同浏览器多次登录时 URL 是否完全相同。可能是您每次登录时都会收到一个唯一的 URL。
关于python - 如何在 Python 中使用 Selenium 登录后保持 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34652783/