17

たとえば、コードを使用し、ユーザー入力を使用しない場合、プログラムで Google の [検索] ボタンをクリックするにはどうすればよいでしょうか (検索ボックスに入力済みで、google.com にいると仮定します)。

4

3 に答える 3

43
webBrowser1.Navigate("http://www.google.com");

これをID使用する場合:

webBrowser1.Document.GetElementById("id").InvokeMember("click");

TagNameこれを使っていたら

 webBrowser1.Navigate("http://www.google.com");

Web ブラウザの DocumentCompleted イベントで

HtmlElement textElement = webBrowser1.Document.All.GetElementsByName("q")[0];
textElement.SetAttribute("value", "your text to search");
HtmlElement btnElement = webBrowser1.Document.All.GetElementsByName("btnG")[0];
btnElement.InvokeMember("click");

名前がある場合はClass、これを使用します。

HtmlElementCollection classButton = webBrowser1.Document.All;
foreach (HtmlElement element in classButton) 
{
    if (element.GetAttribute("className") == "button")
    {
        element.InvokeMember("click");
    }
}

にテキストを追加TextBoxして google.com を検索するには、次を使用します。

 webBrowser1.Document.GetElementById("gs_tti0").InnerText = "hello world";
于 2012-06-30T09:54:49.633 に答える
2

次のコードを試してください。

public WebBrowser webBrowser1 = new WebBrowser();
    private void WebForm_Load(object sender, EventArgs e)
        {
            try
            {
                webBrowser1.Height = 1000;
                webBrowser1.Width = 1000;
                this.Controls.Add(webBrowser1);
                webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(WebBrowser_DocumentCompleted);
                this.webBrowser1.Navigate("www.google.com.au");
            }
            catch
            { }

次の関数を C# フォームに書き留めます。

public void WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        var webBrowser = sender as WebBrowser;
        webBrowser.DocumentCompleted -= WebBrowser_DocumentCompleted;

        HtmlElement textElement = webBrowser.Document.All.GetElementsByName("q")[0];
        textElement.SetAttribute("value", "mlm company");
        HtmlElement btnElement = webBrowser.Document.All.GetElementsByName("btnG")[0];
        btnElement.InvokeMember("click");


    }
于 2013-08-23T19:35:55.380 に答える
0

や などを使用することに加えて、またはからInvokeMember呼び出されたときに Web ページの応答に問題がある場合は、.NET 内でクラスを使用してみてください。私はWebページ用に多くのスクリプトを作成しましたが、両方を組み合わせて使用​​する必要があることがわかりました( @AleWinの回答の方法よりもはるかに面倒ですが)。IDClass{TAB}{ENTER}SendKeysSendKeys

SendKeys クラスへのリンクは次のとおりです。

于 2015-02-03T22:24:46.913 に答える