Как выбрать класс с помощью GetElementByClass и щелкнуть по нему программно

Я пытался использовать этот код для чтения элемента по классам в html / ajax, зная, что GetElementByClass не является опцией в webBrowser.Document. Я не могу получить возвращаемое значение, а затем вызвать член. Есть ли обходной путь для этого?

Список литературы: Получение HTMLElements по имени класса

Пример:

(test)

Пример кода:

   HtmlElementCollection theElementCollection = default(HtmlElementCollection);
   theElementCollection = webBrowser1.Document.GetElementsByTagName("span");
   foreach (HtmlElement curElement in theElementCollection)
   {
        //If curElement.GetAttribute("class").ToString = "example"  It doesn't work.  
        // This should be the work around.
        if (curElement.OuterHtml.Contains("example"))
        {
            MessageBox.Show(curElement.GetAttribute("InnerText")); // Doesn't even fire.
            // InvokeMember(test) after class is found.
        }
    }

6
задан Cœur 29 June 2019 в 05:54
поделиться

2 ответа

вот пример того, как я использовал элемент управления webbrowser для поиска элементов, определенных классом, и вызова Click по ссылке внутри.

упрощенно >

   foreach (HtmlElement item in webBrowser1.Document.GetElementsByTagName("li"))
        {
            // use contains() if the class attribute is 
            // class="page_item page-item-218 current_page_item"
            //this to be more on spot! >> if (item.OuterHtml.Contains("class=\"page_item"))
            // or
            if (item.OuterHtml.Contains("page_item"))
            {
                foreach (HtmlElement childItem in item.Children)
                {
                    if (childItem.TagName == "A")
                    {
                        //Click the link/Current element
                        childItem.InvokeMember("Click");
                        break;
                    }
                }
                break;
            }
        } 

работает ли этот способ?...

у меня работает вот здесь.

или может я неправильно понял ваш вопрос?

4
ответ дан 8 December 2019 в 12:17
поделиться

Почему бы вам не использовать для этого селекторный движок qjuery. И еще, где вы ожидаете появления messagebox.show?

0
ответ дан 8 December 2019 в 12:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: