按钮在Web浏览器中单击

时间:2012-08-29 16:33:04

标签: c# html browser

我已创建了网络浏览器,现在我想点击表格上的button1点击网页上的按钮。

private void button1_Click(object sender, EventArgs e)
{
    webBrowser1.Document.GetElementById("search").SetAttribute("value", IP.Text);
    webBrowser1.Document.GetElementById("").InvokeMember("click");
}

但我无法从此字符串中获取按钮ID

<input type="submit" value="→" class="button">

有没有办法解决这个问题?

2 个答案:

答案 0 :(得分:6)

尝试迭代网页中的所有<input>元素。如果找到具有所需值的值,则可以单击该元素。

foreach (HtmlElement el in webBrowser1.Document.GetElementsByTagName("input")
{
    if (el.GetAttribute("value").Equals("→"))
    {
        el.InvokeMember("click");
    }
}

答案 1 :(得分:3)

网站不会阻止向其发布表单。因此,您始终可以使用指向它的表单创建自己的网页。

HTML

<form id="search" action="http://whois-service.ru/lookup/" method="post">
    <input type="text" class="text" name="domain" id="domain" />
    <input type="submit" value="" class="button" />
    <input id="submit" type="hidden" name="real" value="true2.1simpleJ" />
</form>

C#

private void button1_Click(object sender, EventArgs e)
{
    webBrowser1.DocumentText = "[The HTML from above here]";
    webBrowser1.Document.GetElementById("domain").SetAttribute("value", IP.Text);
    webBrowser1.Document.GetElementById("submit").InvokeMember("click");
}

如果您打算抓取WHOIS信息。您必须确保不违反条款和条件。大多数WHOIS服务不允许自动检查。

如果他们这样做,那就是你要做的事情,那么你应该考虑使用HttpWebRequest,它会更有效率。请参阅此处有关如何使用http://swhobby.blogspot.co.uk/2010/03/c-example-of-http-post.html

的示例