Щелкните ссылку HTML внутри элемента управления WebBrowser

C # Visual Studio 2010

Я загружаю сложную HTML-страницу в элемент управления веб-браузера. Но у меня нет возможности изменить веб-страницу. Я хочу щелкнуть ссылку на странице автоматически из формы Windows. Но, похоже, идентификатор генерируется случайным образом при каждой загрузке страницы (поэтому я считаю, что ссылка на идентификатор не будет работать). HREF = "JavaScript: недействительным (0)" class = "SGLeftPanelText" onclick = "setStoreParams ('case; 212', 212); window.leftpanel.onClick ('case_ss_733'); вернуть false;">

My Assigned</a>

В любом случае щелкнуть ссылку в C #?

Спасибо!


ОБНОВЛЕНИЕ:

Я чувствую, что это близко, но это просто не работает:

HtmlElementCollection links = helpdeskWebBrowser.Document.Window.Frames["main_pending_events_frame"].Document.GetElementsByTagName("a");
MessageBox.Show(links.Count.ToString());

Я пробовал подключать каждое имя кадра и пробовал и «a», и «A» в поле TagName но просто не повезло. Я просто не могу найти никаких ссылок; окно сообщения всегда равно 0. Чего мне не хватает?

6
задан Josh 16 August 2010 в 18:56
поделиться

2 ответа

Должно работать что-то вроде этого:

HtmlElement link = webBrowser.Document.GetElementByID("u_lp_id_58547")
link.InvokeMember("Click")

РЕДАКТИРОВАТЬ:

Поскольку идентификаторы генерируются случайным образом, другим вариантом может быть идентификация ссылок по их InnerText ; по этим линиям.

HtmlElementCollection links = webBrowser.Document.GetElementsByTagName("A");

foreach (HtmlElement link in links)
{
    if (link.InnerText.Equals("My Assigned"))
        link.InvokeMember("Click");
}

ОБНОВЛЕНИЕ:

Вы можете получить ссылки в IFrame, используя:

webBrowser.Document.Window.Frames["MyIFrame"].Document.GetElementsByTagName("A");
16
ответ дан 8 December 2019 в 13:43
поделиться

Возможно, вам придется изолировать значение идентификатора ссылки, используя больше окружающего HTML-контекста в качестве «цели» и затем извлеките новый случайный идентификатор.

Раньше я использовал « HtmlAgilityPack », чтобы легко анализировать HTML-код с «очищенным экраном», чтобы изолировать интересующие области на странице - эта библиотека кажется простой в использовании и надежной.

1
ответ дан 8 December 2019 в 13:43
поделиться
Другие вопросы по тегам:

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