0

在登录页面中,我想使用 sendKeys 输入密码,但“sendkeys”不起作用;我应该怎么做?这是html

<fieldset class="txt" id="psd">
<label>password:&lt;/label>
<script type="text/javascript">
IntPassGuardCtrl("logpswd", "2", "chklogon()",Ipsdstyle");</script>
<span id="logpswd_pgc">
<embed id="logpswd" type="application/x-pass-guard" input0="0" class="psdstyle"></span>
<input name="LOG_PSWD" type="hidden" id="LOG_PSWD">                      </fieldset>
  1. 有人说可以使用JNA,但部分我不太了解。
  2. 密码控制可以用鼠标点击,然后聚焦;并使用键盘输入信息;
  3. 所以我想用鼠标点击控件,但是使用webdriver动作不起作用,你有什么办法解决这个问题吗?
4

1 回答 1

0

看起来您的应用程序使用嵌入式对象来捕获密码字段。不幸的是,Web 浏览器(以及 WebDriver)不知道如何与该字段交互,因为它不是标准的。

但是,可能有机会做您需要做的事情。看起来您的 HTML 包含一个可能与嵌入对象相关联的隐藏输入字段。嵌入对象可能只是在input#LOG_PSWD元素中设置(加密?)密码的值。如果是这种情况,您可以使用 WebDriver 的 executeScript 方法来注入密码的值。

我不知道您使用什么语言绑定,但这是您在 Ruby 中编写它的方式:

password = "some$3cretP@ssword"
hidden_password = @driver.find_element(:id => "LOG_PSWD")
@driver.execute_script("arguments[0].setAttribute(arguments[1], arguments[2])", hidden_password, "value", password)

然后尝试从那里登录。由于您将密码文本直接注入到隐藏的输入中,因此密码文本很可能不会显示在控件本身中。

试一试,让我们知道会发生什么。如果您可以向我们提供有关嵌入对象的更多信息,如果此方法不起作用,我们可能会找到其他一些解决方法。

于 2013-05-18T16:22:07.957 回答