Hy People!我在这里再次请求你的帮助。我在Wpf应用程序中有一个Web浏览器控件。进入事件Load主窗口我设置了控件的源:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
webBrowser1.Source = new Uri(ConnectionString);
webBrowser1.Navigate(ConnectionString);
}
此时我必须使用我的Windows Live ID登录。为此,我寻找输入控件以填充我的用户名和通行证,然后按钮提交以调用事件Click():
HTMLDocument mdoc = (HTMLDocument)webBrowser1.Document;
IHTMLElement usern = mdoc.getElementById("i0116");
IHTMLElement dom = mdoc.getElementById("i0118");
IHTMLElement btl = mdoc.getElementById("idSIButton9");
if (usern != null && dom != null && btl != null)
{
// pass authentication
usern.setAttribute("value", UserName);
dom.setAttribute("value", password);
btl.click();
IsRendered=true;
}
这就是问题!如果页面尚未呈现,则过程getElementById将返回Null !!。
有没有办法知道页面何时完全呈现? 提前谢谢!
答案 0 :(得分:2)
答案 1 :(得分:0)
您可以使用webBrowser1的导航事件。
答案 2 :(得分:0)
Hy,a可以解决问题。我所做的是创建一个新线程。在这个新线程中,我将我的代码插入到DO-WHILE循环中,并将thread.abort()插入到IF循环中。谢谢你的帮助