0

使用 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 秒来输入这个密码!

谢谢!!!

4

2 回答 2

1

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

def enter_password(driver, password):
    driver.execute_script("""$("#pwdPwdPassword").val('%s');"""" % password) 
    ## id must be unique per page
于 2013-11-14T21:03:22.713 回答
0

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

input_field = find_element_by_id("pwdPwdPassword")
input_field.send_keys("12345678")

如果这不起作用,也尝试更新您的 PhantomJs 网络驱动程序

于 2020-03-09T19:08:17.507 回答