【发布时间】:2014-05-15 06:05:59
【问题描述】:
我在表单中有一个 WebBrowser,我想用它做一些自动化操作。我单击 Windows 窗体内的一个按钮,该按钮命令 WebBrowser 的 Navigate 方法到某个页面。然后我在 DocumentCompleted 触发后自动单击一个链接,但之后我还想单击一个存在于通过单击该链接出现的新页面中的按钮。似乎 DocumentCompleted 仅在我单击 Windows 窗体中的按钮时才触发,而不是在我自动单击网页内的链接时触发。
void BtnTestClick(object sender, EventArgs e)
{
webBrowser1.Navigate(@"https://play.google.com/apps/");
webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(WebBrowser_DocumentCompleted);
}
public void WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
var webBrowser = sender as WebBrowser;
//webBrowser.DocumentCompleted -= WebBrowser_DocumentCompleted;
// test to see if we're on fist CONFIRM page then go forward by clicking
var links = webBrowser1.Document.GetElementsByTagName("a");
foreach (HtmlElement link in links)
{
if (link.InnerText == "Proceed anyway")
{
link.InvokeMember("click");
}
} // this works
webBrowser1.Document.GetElementById("gwt-uid-126").InvokeMember("click");
}
link.InvokeMember("click"); 之后,网络浏览器中会加载一个新页面,该页面有一个我也想点击的按钮 (gwt-uid-126)
但它没有被点击。
我也试过了:
var elements = webBrowser1.Document.GetElementsByTagName("button");
foreach (HtmlElement file in elements)
{
if (file.GetAttribute("class") == "GKYRWGTDNX GKYRWGTDLY")
{
file.Focus();
file.InvokeMember("click");
}
}
没有运气!
【问题讨论】:
标签: c# .net vb.net webbrowser-control