-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 方面的链接,而是所谓的表格单元,它在 html 中表示为此处<td>解释的标记。这就是当您遍历集合时找不到所需内容的原因。document.links

您可以在webbrowsercontrol的 Document 属性上使用另一种方法来获取特定标记名称的列表GetEelementsByTagName。那会给你<td>的。通过一个简单的 if 您可以检查您是否到达正确<td>,然后在元素上调用RaiseEvent以调用所需的行为。

  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 回答