1

入力する必要がある入力フィールドには、名前の値が j_password に設定されています。クリックしたいボタンは、id が loginBtn に設定された div 内のリンクです。

私はこのようなことを試みています:

mshtml.IHTMLDocument2 doc = ((mshtml.IHTMLDocument2)webBrowserControl.Document);
((mshtml.IHTMLElement)doc.all.item("j_password")).setAttribute("value", password);
((mshtml.IHTMLElement)doc.all.item("loginBtn")).click();

しかし、ボタンは決してクリックされません。それが実際にはボタンではないためなのか、それとも名前属性がなく、ID を使用しようとしているからなのかはわかりません。

とにかく、誰かがこれに対する修正を見ていますか?

4

1 に答える 1

2

クリック呼び出しで NullReferenceException がスローされなかった場合は、要素が見つかりました。ただし、将来のために、document.all の代わりに標準の IHTMLDocument3::getElementById または IHTMLDocument3::getElementsByName を使用することをお勧めします。

クリックが機能しない理由については、クリックがどのように機能するかによって異なります。マウス クリックには多くの副作用があり、マウス ダウンとマウス アップの間にマウスが要素上にない場合、ブラウザーはこれらの効果を制限する場合があります。

クリックで JavaScript 関数を呼び出す場合は、その関数を直接呼び出します (ExecScript)。それ以外の場合は、ログイン フォーム要素を見つけ、その onsubmit ハンドラ関数があればそれを呼び出し、次にその submit メソッドを呼び出します。

于 2012-06-07T23:05:24.967 に答える