2009-07-15 39 views
2

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

しかし、Visual Studio 2008のデバッグモードでは、この特定のURLのこのHTMLDocumentClassの内容は、activeElement、alinkColor、all、アプレット、charset、childNodesなどなどの属性を含むMASSIVEです。

私は「をクリック」に変更したい、そのページ内のボタンがあります。しかし、私はそのボタンの名前/ id /タグを見つける方法がわかりません。

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

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

はのは、URLがyahoo.comである、と私は、Web検索ボタンを「クリック」したいとしましょう。

このついて行くの任意の体系的な方法?

答えて

5

これは私のWebBrowserコントロールがヤフーであると仮定しています。あなたはヤフーのソースを見てみると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(); 

を使用すると、あなたはその検索が表示された場合は、検索ボタンのIDが "searchsubmit" Windows.Forms.HtmlDocument

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

を使用して

ですテキストボックスは複数のdivにあります。 htmlDoc.all.itemが世話をします。

+0

[OK]をクリックします。このボタンがDIV要素の3つのレイヤー内に埋め込まれている場合はどうなりますか?つまり、DIV1の下にあるDIV2の下にあるDIV3の下にあります。どのようにナビゲートできますか? mshtmlと仮定すると – Saobi

+0

私は自分の答えを更新しました。そこにいくつのDIVがあるかは関係ありません、htmlDoc.all.itemはドキュメント内のすべての項目を通過します。 –

+0

はあなたのためにこの仕事をしましたか? –