Python 无法使用Selenium登录
我正在使用Selenium+Python 2.7堆栈。Python 无法使用Selenium登录,python,selenium,web-crawler,Python,Selenium,Web Crawler,我正在使用Selenium+Python 2.7堆栈。 我想登录论坛,抓取帖子数据,用于学术研究目的。我使用以下代码填写登录表单: username = browser.find_element_by_xpath("//input[@id='navbar_username']") username.clear() username.send_keys("####") password = browser.find_eleme
我想登录论坛,抓取帖子数据,用于学术研究目的。我使用以下代码填写登录表单:
username = browser.find_element_by_xpath("//input[@id='navbar_username']")
username.clear()
username.send_keys("####")
password = browser.find_element_by_xpath("//input[@id='navbar_password_hint']")
password.clear()
password.send_keys("####")
loginbutton = browser.find_element_by_xpath("//input[@class='loginbutton']")
loginbutton.click()
但当爬虫程序运行时,我无法登录。它把我带到了错误的用户名/密码页面。我尝试使用相同的信息手动登录,并且能够在没有任何错误的情况下登录。运行爬虫程序时,用户名和密码字段中会填写正确的值。我不明白是什么导致了这个问题。
非常感谢您的帮助。似乎您使用了错误的元素作为密码字段。你应该试试
password = browser.find_element_by_xpath("//input[@id='navbar_password']")
因为此元素是type=“password”
,而
是type=“text”
由于目标元素处于隐藏状态,您可以使用以下命令使其可见:
browser.execute_script('document.getElementById("navbar_password").style.display="block";')
我也试过了,但由于tat字段是隐藏的,所以我无法
发送\u keys()
该字段。我检查了表单,在提交时它对用户名和navbar_密码字段条目进行了哈希处理。您知道如何在python selenium中填充隐藏的输入文本字段吗?您更新的应答脚本使该字段可见,我可以将密码值发送到相应的字段。但它仍然给我在登录时的错误,我也尝试了“form.submit()”样式的方法,但没有成功。@tortuga:你已经选择了这个作为你接受的答案,但是你的评论听起来好像这并没有真正解决你的问题。您仍然有问题吗?当面临此类问题时,最简单的方法是交互使用Selenium
,然后将代码导出为Python。当查看结果(工作)代码时,您可能会发现原始代码失败的原因。