ASP.NET и C #: создать кнопку, которая отправляет ключевое слово на сайт с панелью поиска - PullRequest
0 голосов
/ 21 октября 2019

Я новичок в ASP.NET и C #. Я знаю, что в веб-приложении я могу создать кнопку, которая открывает веб-страницу:

private void button1_Click(object sender, EventArgs e)
{
    //Launch browser
    System.Diagnostics.Process.Start("https://www.nhl.com/jets");
}

Но если на целевой странице есть панель поиска, как я могу отправить ключевое слово на эту панель поиска после нажатия кнопки? ? Для ясности, скажем, что мой программный код объявляет это ключевое слово так: string keyword = Keyword.Text. Как я могу убедиться, что это ключевое слово автоматически отправляется на панель поиска, чтобы пользователи могли видеть результаты, не вводя ключевое слово?

1 Ответ

1 голос
/ 21 октября 2019

Попробуйте, вы должны использовать webBrowser автоматизация. Я адаптировал эти методы, которые я писал ранее, к вашему сайту, просто добавьте ваши небольшие изменения:

... string keyboard = Keyword.Text

    public String GetKeyboardValueForSearch() {
        return keyboard;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        webBrowser1.DocumentCompleted += new 
        WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
        webBrowser1.Navigate("https://www.nhl.com/jets");            
    }

    void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        HtmlElement search = webBrowser1.Document.GetElementById("top-nav__search- 
        autocomplete__input");
        if(search != null)
        {
            search.SetAttribute("value", GetKeyboardValueForSearch());
            foreach(HtmlElement ele in search.Parent.Children)
            {
                if (ele.TagName.ToLower() == "input" && ele.Name.ToLower() == "go")
                {
                    ele.InvokeMember("click");
                    break;
                }
            }
        }
    }
...