我已创建了网络浏览器,现在我想点击表格上的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">
有没有办法解决这个问题?
答案 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
的示例