Как вы нажимаете кнопку в элементе управления веб-браузером? - программирование

Как вы нажимаете кнопку в элементе управления веб-браузером?

Например, используя код и не вводить пользователя, как бы я сделал свою программу, нажмите кнопку "Поиск" в Google (если я уже заполнил поле поиска и нахожусь на google.com)

4b9b3361

Ответ 1

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

Если у вас есть ID, используйте это:

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

Если вы используете TagName, используйте

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

В веб-браузере Документированное событие

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

Ответ 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
            { }

Запишите следующую функцию в форме С#:

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


    }

Ответ 3

В дополнение к использованию InvokeMember и других, если на вашей веб-странице возникают проблемы при вызове ID или Class, вы можете попробовать использовать {TAB} и {ENTER}, используя класс SendKeys внутри. СЕТЬ. Я написал много скриптов для веб-страниц и обнаружил, что мне пришлось использовать комбинацию обоих (даже если SendKeys намного более беспорядочно, чем методы в ответе @AleWin).

Вот ссылка на класс SendKeys.