这是我试图点击的按钮:
<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控件中单击该表格单元格的正确方法是什么?
答案 0 :(得分:3)
问题在于,您所谓的“链接”不是WebBrowser方面的链接,而是一个所谓的tablecell,它以html表示为<td>
标记,解释为here 。这就是当您遍历document.links
集合时,您找不到所需内容的原因。
您可以在webbrowsercontrol的Document属性上使用另一种方法来获取特定标记名称列表GetEelementsByTagName。那将只给你<td>
。如果您可以检查是否到达了正确的<td>
,然后在元素上调用RaiseEvent来调用所需的行为,那么这很简单。
foreach (HtmlElement td in this.webBrowser1.Document.GetElementsByTagName("td"))
{
Debug.WriteLine(td.InnerText);
if (td.InnerText.Equals("test"))
{
td.RaiseEvent("onclick");
}
}