Нажмите на одну ссылку в geckoWebBrowser в C # - PullRequest
3 голосов
/ 22 сентября 2019

Я хочу нажать на одну ссылку на одной странице.

Вот мой код:

private void Button1_Click(object sender, EventArgs e)//GO
{
    if (!Xpcom.IsInitialized) Xpcom.Initialize("Firefox");
    geckoWebBrowser1.Navigate("http://www.tsetmc.com/loader.aspx?ParTree=151311&i=67126881188552864");    
}

И я хочу нажать на ссылку:

<a href="#" class="violet" onclick="ii.ShowTab(6)">حقیقی-حقوقی</a>

кто-нибудь может мне помочь?спасибо.

1 Ответ

0 голосов
/ 24 сентября 2019

Я только что посмотрел проект Gecko, где я нажимал на ссылку, и хотя следующее может быть не самым элегантным способом, тот же метод должен работать для вас:

private void geckoWebBrowser1_DocumentCompleted(object sender, EventArgs e)
{
    var elements = geckoWebBrowser1.Document.GetElementsByTagName("a");
    foreach (GeckoHtmlElement element in elements)
    {
        if (element.ClassName == "violet")
        {
            element.ScrollIntoView(false);
            element.Click();
        }
     }
}

Я не думаю,ScrollIntoView вызов на самом деле требуется, я просто сделал это, потому что это была анимированная кнопка, и я хотел убедиться, что она работает.Но вам нужно подождать, пока документ загрузится, прежде чем щелкнуть, поэтому я поместил его в событие DocumentCompleted, поэтому перед Navigate не забудьте добавить:

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