我在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);
Run Code Online (Sandbox Code Playgroud)
登录失败显然是因为第二个send_keys删除了密码的第一个字符(我通过直接将密码字符发送到电子邮件字段找到了这个.
这是怎么回事?为什么selenium不能像将密钥发送到输入字段那样简单?这是一种由Facebook编码的拒绝自动脚本的保护措施吗?
试图发送整个字母表得到这个:
abcdefghijklmnopqrstuvwxyzBCDFGIKLNOQSTWX
Run Code Online (Sandbox Code Playgroud)
注意缺少多少个字符......
显然这个问题与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)
Run Code Online (Sandbox Code Playgroud)
使用chrome驱动程序,我得到BCDFGIKLNOQSTWX注意A,E,H ... Y,Z是如何丢失使用firefox驱动程序(替换browser = webdriver.Chrome()为browser = webdriver.Firefox()我得到:ABCDEFGHIJKLMNOPQRSTUVWXYZ