Selenium Python - send_keys时髦的行为

时间:2013-11-13 18:19:22

标签: python selenium

使用Selenium和PhantomJS(python 2.7)我在页面上找到一个文本框(Cisco Unity 7 FYI),并尝试发送密钥。

driver.find_element_by_id("pwdPwdPassword").send_keys("12345678")
driver.save_screenshot('screen.png')

查看屏幕截图,实际上只发送了2个键。不确定哪个Unity掩盖了密码。我注意到如果我在IDLE中浏览我的脚本并且慢慢地输入

driver.find_element_by_id("pwdPwdPassword").send_keys("1")
driver.find_element_by_id("pwdPwdPassword").send_keys("2")
driver.find_element_by_id("pwdPwdPassword").send_keys("3")
driver.find_element_by_id("pwdPwdPassword").send_keys("4")
....

击键实际上是进入文本框。我尝试在我的脚本中的每个send_keys之间放一个time.sleep(2)但结果是一样的。我希望有一个技巧,所以我不必为我的脚本添加30秒只是为了输入这个密码!

感谢!!!

2 个答案:

答案 0 :(得分:1)

作为一个选项,尝试使用jQuery:

def enter_password(driver, password):
    driver.execute_script("""$("#pwdPwdPassword").val('%s');"""" % password) 
    ## id must be unique per page

答案 1 :(得分:0)

也许您应该像这样存储输入字段对象:

"postinstall": "ng build --aot --prod"

如果这不起作用,请尝试更新您的PhantomJs Webdriver