有人知道在webbrowser内部执行控件的一个好方法吗?优选来自ID?
谢谢,所有建议都表示赞赏。
答案 0 :(得分:3)
使用HtmlElement.InvokeMember(“click”)方法。这是一个使用Google“我感觉很幸运”按钮的示例表单:
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
webBrowser1.Url = new Uri("http://google.com");
webBrowser1.DocumentCompleted += webBrowser1_DocumentCompleted;
}
void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) {
if (webBrowser1.Url.Host.EndsWith("google.com")) {
HtmlDocument doc = webBrowser1.Document;
HtmlElement ask = doc.All["q"];
HtmlElement lucky = doc.All["btnI"];
ask.InnerText = "stackoverflow";
lucky.InvokeMember("click");
}
}
}
答案 1 :(得分:0)
您无法直接在控件中的某些内容上调用click
。但是,您可以将一些JavaScript注册到控件中并以这种方式执行单击。
答案 2 :(得分:0)
这不是一个ID,但你可以使用值按钮来做同样的事情。
Dim allelements As HtmlElementCollection = WebBrowser1.Document.All
For Each webpageelement As HtmlElement In allelements
If webpageelement.GetAttribute("value") = "Log In" Then
webpageelement.InvokeMember("click")
End If
Next