Как программно щелкнуть элемент ссылки с помощью HTMLElement? - PullRequest
17 голосов
/ 15 марта 2011

Я делаю программу автоматизации. Я загружаю веб-страницу в форму Windows и загружаю ее в элемент управления WebBrowser. Затем мне нужно нажать на ссылку из WebBrowser программно. Как я могу это сделать? например:

  1. <a href="http://www.google.com">Google Me</a>

  2. <a href="http://www.facebook.com" id="fbLink">Facebook Me</a>

Выше приведены 2 разных условия. Первый элемент не имеет атрибута id, в то время как второй имеет. Любая идея о том, как нажимать каждый программно?

Ответы [ 2 ]

19 голосов
/ 15 марта 2011

Сначала вы должны найти свой элемент по его идентификатору или другим фильтрам:

HtmlElement fbLink = webBrowser.Document.GetElementByID("fbLink");

И для имитации "клика":

fbLink.InvokeMember("click");

Пример поиска вашей ссылки по внутреннему тексту:

HtmlElement FindLink(string innerText)
{
    foreach (HtmlElement link in webBrowser.Document.GetElementsByTagName("a"))
    {
        if (link.InnerText.Equals("Google Me"))
        {
            return link;
        }
    }
}
1 голос
/ 15 марта 2011

Вам нужен способ автоматизации браузера.

Один из способов сделать это - использовать Watin (https://sourceforge.net/projects/watin/).. Он позволяет вам написать программу .Net, которая управляет браузером через удобную объектную модель. В основном она используется для написания автоматических тестов длявеб-страниц, но его также можно использовать для управления браузером.

Если вы не хотите управлять браузером таким образом, вы можете написать JavaScript, который вы включаете на своей странице, который выполняет щелчок, ноЯ сомневаюсь, что это то, что вы после.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...