首先,我修复了WebBrowser,现在我在Windows窗体中正确地看到了该页面。我接下来是link并将其引用到IE 11.0,因此我的Windows窗体中的WebBrowser控件是一个IE11.0浏览器实例。
我在表单的构造函数中有这个:
webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(WebBrowser_DocumentCompleted);
然后是事件处理程序
public void WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
txtLoad.Text = (Convert.ToInt32((txtLoad.Text)) + 1).ToString();
var webBrowser = sender as WebBrowser;
webBrowser.Document.GetElementById("gwt-uid-126").InvokeMember("click");
}
只需点击一下按钮即可开始:
void BtnTestClick(object sender, EventArgs e)
{
webBrowser1.Navigate(@"https://play.google.com/apps/publish/?dev_acc=06010154238306490792#AppListPlace");
}
点击调用不执行任何操作。我尝试了列出here的所有方法,但没有。为什么我可以在屏幕上看到按钮但无法在代码中引用它?如果按钮没有加载,为什么documentCompleted会触发?我该如何获得按钮?然后点击它?
答案 0 :(得分:3)
修正:
webBrowser1.Navigate(@"https://play.google.com/apps/publish/?dev_acc=06010154238306490792#AppListPlace");
while (WebBrowser1.ReadyState != WebBrowserReadyState.Complete) {
txtLoad.Text = WebBrowser1.ReadyState.ToString();
Application.DoEvents();
System.Threading.Thread.Sleep(1);
}
webBrowser1.Document.GetElementById("gwt-uid-126").InvokeMember("click");
即使文档未完全加载,我也会调用WebBrowserDocumentCompleted事件
例如:
假设页面源代码中有2个脚本元素:
<script src="1.js"></script>
//Here There Is A Call To WebBrowserDocumentCompleted
<script src="2.js"></script>
//Here There Is A Call To WebBrowserDocumentCompleted
............
body
.............
</html>
//Here There Is A Call To WebBrowserDocumentCompleted
即使在完成加载脚本/样式表之后,webbrowser也在调用此事件 - 该页面尚未完全加载。