2

C#では、InternetExplorerオブジェクトからHTMLDocumentClass全体を取得することができました(特定のURLに移動します)。

ただし、Visual Studio 2008のデバッグモードでは、この特定のURLのこのHTMLDocumentClassのコンテンツはMASSIVEであり、activeElement、alinkColor、all、applets、charset、childNodesなどの属性が含まれます。

そのページに「クリック」に変更したいボタンがあります。しかし、そのボタンの名前/ID/タグを見つける方法がわかりません。次のようなステートメントを使用する簡単なチュートリアルがあります。

HTMLInputElement button =
  (HTMLInputElement)theDoc.getElementById("Button1");
button.click();

しかし、私のURLの構造はそれよりも100倍複雑です。

URLがyahoo.comで、Web検索ボタンを「クリック」したいとします。

これについて体系的な方法はありますか?

4

1 に答える 1

5

これは、私の WebBrowser コントロールが Yahoo にあると仮定しています。検索ボタンのIDは「searchsubmit」

Windows.Forms.HtmlDocument の使用

 HtmlElement button = (HtmlElement)htmlDoc.GetElementById("searchsubmit");
 button.InvokeMember("click");

mshtml と HTMLInputElement を使用する場合

   HTMLDocument htmlDoc = new HTMLDocumentClass();
    htmlDoc = (HTMLDocument)axWebBrowser1.Document;

   //find the search text box..
   HTMLInputElement searchTextBox = (HTMLInputElement)htmlDoc.all.item("p", 0);
   searchTextBox.value = "Stack Overflow";

   //find the button
   HTMLInputElement searchButton = (HTMLInputElement)htmlDoc.all.item("searchsubmit", 0);
   searchButton.click();

Yahoo のソースを見ると、検索テキスト ボックスが複数の div 内にあることがわかります。htmlDoc.all.itemが処理します。

于 2009-07-15T20:56:36.863 に答える