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 に答える