使用Python继续使用Selenium登录

时间:2013-07-25 10:10:21

标签: python forms selenium submit

我正在尝试登录网站,然后登录后使用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)

不幸的是我导航到新页面但我不再登录。如何解决此问题?

1 个答案:

答案 0 :(得分:1)

看起来网站没有足够的时间以授权形式对您的提交做出反应。您点击submit但不等待回复并打开另一个网址。

等到登录后的某个事件(比如获取Cookie或DOM中的某些更改或仅time.sleep),然后转到另一页。

P.S。:如果没有帮助,请在登录后和打开新网址后检查您的Cookie,也许是授权后端或网络驱动程序的问题