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");
    }
}

要在 a 中添加文本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

除了 usingInvokeMember和其他,如果您的网页在被IDor调用时出现响应问题Class,您可以尝试在 .NET 中使用{TAB}&{ENTER}使用该类。SendKeys我已经为网页编写了很多脚本,并且发现我必须将两者结合使用(尽管SendKeys比@AleWin 的答案中的方法要混乱得多)。

这是 SendKeys 类的链接。

于 2015-02-03T22:24:46.913 回答