我在 Windows 7 中使用带有 Python ( https://pypi.python.org/pypi/selenium ) 的 selenium 包。当我尝试登录我的 facebook 帐户时,我使用send_keys
命令,例如
elem = browser.find_element_by_name("email")
elem.send_keys(email);
elem = browser.find_element_by_name("pass")
elem.send_keys(password);
登录失败显然是因为第二个send_keys
丢失了密码的第一个字符(我通过直接将密码字符发送到电子邮件字段来发现这一点。
这是怎么回事?为什么 selenium 不能做一些简单的事情,比如将键发送到输入字段?这是 Facebook 为拒绝自动脚本编写的某种保护措施吗?
试图发送整个字母表并得到了这个:
abcdefghijklmnopqrstuvwxyzBCDFGIKLNOQSTWX
注意缺少多少字符...
更新
显然问题与 facebook 无关,而是与 chrome 驱动程序有关。
如果我发送以下简单代码
browser = webdriver.Chrome()
browser.get("https://www.google.com") # Load page
elem = browser.find_element_by_name("q") # Find the query box
query= "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
elem.send_keys(query)
browser = webdriver.Chrome()
使用 chrome 驱动程序browser = webdriver.Firefox()
我得到 BCDFGIKLNOQSTWX 注意 A、E、H ... Y、Z 是如何丢失的