Я пытался использовать этот код для чтения элемента по классам в 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.
}
}
вот пример того, как я использовал элемент управления 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;
}
}
работает ли этот способ?...
у меня работает вот здесь.
или может я неправильно понял ваш вопрос?
Почему бы вам не использовать для этого селекторный движок qjuery. И еще, где вы ожидаете появления messagebox.show?