-4

これは私がクリックしようとしているボタンです:

<td class="dark" onclick="document.getElementById('id').value = '0'; document.getElementById('form').submit()">
   test
</td>

Winform WebBrowser コントロールを使用してその要素をクリックするこのコードを試しました。

HtmlElementCollection links = webBrowser1.Document.Links;

foreach (HtmlElement link in links)
{
    if ((link.InnerText != null) && (link.InnerText.Equals("test")))
        link.InvokeMember("Click");
}

リンクはクリックしますが、上に投稿したようなボタンはクリックしません。私もこのようなさまざまなことを試しました:

if (curElement.GetAttribute("id").Equals("0"))
{
    curElement.InvokeMember("click");
}

WebBrowser コントロールからその表のセルをクリックする正しい方法は何ですか?

4

1 に答える 1

3

問題は、あなたが「リンク」と呼んでいるものは WebBrowser に関するリンクではなく、ここ<td>で説明されているタグとして表現された html のいわゆるテーブルセルです。これが、コレクションを繰り返し処理しても、探しているものが見つからない理由です。document.links

Webbrowsercontrolの Document プロパティで別のメソッドを使用して、特定のタグ名GetEelementsByTagNameのリストを取得できます。それはちょうどあなたを与えるでしょう<td>。単純な if を使用して、正しい結果に到達したかどうかを確認し、要素でRaiseEvent<td>を呼び出して、目的の動作を呼び出します。

  foreach (HtmlElement td in this.webBrowser1.Document.GetElementsByTagName("td")) 
  {
         Debug.WriteLine(td.InnerText);
        if (td.InnerText.Equals("test"))
        {
                     td.RaiseEvent("onclick");
        }
  }
于 2013-02-19T20:39:47.343 に答える