C#WebBrowser如何单击按钮

时间:2015-04-10 19:02:46

标签: c# class button click

我尝试制作一个程序,我需要使用我的程序单击一个按钮 webBrowser1.Document.GetElementById("submit").InvokeMember("click");

这不起作用,因为此按钮没有ID 这是按钮的代码:

<a class="buttonMtel" tabindex="6" onclick="document.forms['SMSForm'].submit()">
    <span>Изпрати</span>
</a>
<span>Изпрати</span>.

请帮忙。谢谢。

1 个答案:

答案 0 :(得分:1)

假设您的按钮是class="buttonMtel"的唯一锚点,您可以使用GetElementByTagName方法,然后找到所需的元素:

var anchors = webBrowser1.Document.GetElementByTagName("a");
foreach (HtmlElement anchor in anchors)
{
    if (anchor.GetAttribute("class") == "buttonMtel") 
    {
        // we have found the button => click on it
        anchor.InvokeMember("click");
        break;
    }
}

或者如果您更喜欢LINQ:

var anchor = webBrowser1
    .Document
    .GetElementByTagName("a")
    .Cast<HtmlElement>()
    .FirstOrDefault(anchor => anchor.GetAttribute("class") == "buttonMtel");
if (anchor != null)
{
    anchor.InvokeMember("click");
}

另一方面,如果DOM中有多个class="buttonMtel"锚点,则需要采用不同的方法。根据DOM的实际结构,您可能需要首先找到一些父元素,然后到达所需的按钮。