1

我正在尝试登录一个网站,然后登录后使用 Selenium 导航到保持登录状态的网站上的另一个页面。但是,当我尝试导航到不同的页面时,我发现我已注销。

我相信这是因为我不明白该webdriver.Firefox().get()功能是如何工作的。

我的代码:

from selenium import webdriver
from Code.Other import XMLParser

#Initialise driver and go to webpage
driver = webdriver.Firefox()
URL = 'http://www.website.com'
driver.get(URL)

#Login
UserName = XMLParser.XMLParse('./Config.xml','UserName')
Password = XMLParser.XMLParse('./Config.xml','Password')
element = driver.find_elements_by_id('UserName')
element[0].send_keys(UserName)
element = driver.find_elements_by_id('Password')
element[0].send_keys(Password)
element = driver.find_elements_by_id('Submit')
element[0].click()

#Go to new page
URL = 'http://www.website.com/page1'
driver.get(URL)

不幸的是,我导航到了新页面,但我不再登录。我该如何解决这个问题?

4

1 回答 1

1

看起来网站没有足够的时间对您提交的授权表格做出反应。您单击submit但不等待响应并打开另一个 URL。

等到登录后的某个事件(例如获取 cookie 或 DOM 中的某些更改或只是time.sleep),然后才转到另一个页面。

PS:如果没有帮助,请在登录后和打开新网址后尝试检查您的cookie,可能是授权后端或网络驱动程序的问题

于 2013-07-25T19:51:56.673 回答