我正在使用selenium来叽叽喳喳(不使用api' s刚练习seleinum),当它转到后续页面时需要登录,我使用以下代码找到登录输入字段,然后发送用户名和密码字符串:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome(executable_path="Chrome")
driver.get("https://twitter.com/login")
username = driver.find_element_by_xpath("//*[@id='page-container']/div/div[1]/form/fieldset/div[1]/input")
username.send_keys("username")
password = driver.find_element_by_xpath("//*[@id='page-container']/div/div[1]/form/fieldset/div[2]/input")
password.send_keys("password")
password.send_keys(Keys.ENTER)
driver.get("http://twitter.com/user/following")
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
代码正常工作,但第二个字段(密码字段)除外,它没有发送密码字符串并将其跳到下一行(Keys.ENTER),然后它移动到需要登录的下一页但是光标位于密码字段,表示已经找到它,奇怪的是,执行脚本时没有错误消息或错误代码。
任何想法是什么原因导致这个问题?
我正在使用python 2.7.6 硒版本2.53.6 在ubuntu 14.04上
提前thanx
答案 0 :(得分:1)
只需单击“登录”按钮,而不是发送ENTER键。此外,你的XPath有点脆弱。我会使用更具体的一个,或者你可以使用下面的CSS选择器。
driver.find_element_by_css_selector("#page-container input.email-input").send_keys(username);
driver.find_element_by_css_selector("#page-container input.js-password-field").send_keys(password);
driver.find_element_by_css_selector("button.submit").click();