【问题标题】:Clicking a html button单击 html 按钮
【发布时间】:2013-02-04 15:57:46
【问题描述】:

这是我要点击的按钮:

<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 控件单击该表格单元格的正确方法是什么?

【问题讨论】:

标签: c# html button click invoke


【解决方案1】:

问题在于,您所说的“链接”不是 WebBrowser 方面的链接,而是所谓的表格单元,它在 html 中表示为 &lt;td&gt; 标记,解释为 here。这就是当您遍历 document.links 集合时找不到所需内容的原因。

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

  foreach (HtmlElement td in this.webBrowser1.Document.GetElementsByTagName("td")) 
  {
         Debug.WriteLine(td.InnerText);
        if (td.InnerText.Equals("test"))
        {
                     td.RaiseEvent("onclick");
        }
  }

【讨论】:

    猜你喜欢
    • 2013-07-23
    • 1970-01-01
    • 1970-01-01
    • 2013-07-13
    • 2016-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多