web-dev-qa-db-ja.com

プログラムでHTMLElementを使用してリンク要素をクリックする方法は?

自動化プログラムをやっています。 Webページを自分の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番目の要素にはあります。プログラムでそれぞれをクリックする方法に関するアイデアはありますか?

17
DEN

最初に、IDまたは他のフィルターによって要素を見つける必要があります。

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;
        }
    }
}
19
Saeb Amini

その場合、ブラウザを自動化する方法が必要です。

これを行う1つの方法は、Watin( https://sourceforge.net/projects/watin/ )を使用することです。便利なオブジェクトモデルを介してブラウザーを制御する.Netプログラムを作成できます。主にWebページの自動テストを作成するために使用されますが、ブラウザーの制御にも使用できます。

この方法でブラウザを制御したくない場合は、クリックを実行するページにJavaScriptを含めることができますが、それが目的であるとは思えません。

1
Rune Grimstad