3

ボタンを繰り返しクリックする必要がある Web プロセスを自動化しようとしています。コードがそのボタン (フォームにある WebBrowser コントロールから取得した HtmlElement) をクリックすると、アプリケーション、より具体的には WebBrowser コントロールにフォーカスが戻ります。このプロセスをより適切に自動化して、プロセスの実行中にユーザーが他のことを実行できるようにしたいと考えていますが、ウィンドウがフォーカスを得ているために最小化を解除している場合、それは起こりません。

クリックに関連付けられたコードは次のとおりです。

HtmlElement button = Recruiter.Document.GetElementById("recruit_link");
button.InvokeMember("click");

私も button.RaiseEvent("onclick") を試してみましたが、まったく同じ結果が得られ、フォーカスの問題などがあります。

また、フォームを非表示にしようとしましたが、InvokeMember/RaiseEvent メソッドが呼び出されると、作業していたものはすべてフォーカスを失いますが、フォームが表示されないため、フォーカスがどこにも行かないようです。

Web ブラウザに関する唯一のデフォルト以外のことは、URI が自分のページに設定され、ScriptErrorsSuppressed が True に設定されていることです。

4

2 に答える 2

1

IE7 以降では、Web ブラウザー サイトに IProtectFocus を実装して、フォーカスの変更を拒否できます。この種のカスタマイズをサポートする未加工の ActiveX またはそのラッパー ( csexwbなど) を使用すると、はるかにうまくいくでしょう。winform webbrowser コントロールを使用する必要がある場合は、独自の webbrowser サイトを作成する必要があります。

于 2010-03-01T20:59:58.110 に答える
1

なぜこのボタンをクリックする必要があるのですか? 何らかのフォームを送信していますか?はいの場合、WebClientグラフィック インターフェイスなしで送信フォームを使用してシミュレートできます。

基本的に、ほとんどすべての重要なものは、ウェブサイトへの接続を必要とするGet Postmultipart/post、それでWebClient完璧です. このボタンがオンになっているサイトを取得し、それを解析してクリックの動作を取得するだけです。そして、自分の行動をシミュレートします。

于 2010-04-29T15:38:34.797 に答える