我正在使用以下代码将watin绑定到winform上的webbrowser。
Dim w As IE = New IE(WebBrowser1.ActiveXInstance)
Settings.AutoStartDialogWatcher = False
w.GoTo("http://google.com")
我可以从wireshark看到页面被加载,但表单被冻结,直到异常被抛出“Internet Explorer忙碌时超时”。
有没有办法将watin绑定到webbrowser控件?
答案 0 :(得分:2)
首先,我认为这一行:
Settings.AutoStartDialogWatcher = False
应该在创建IE
实例之前的开头。
如果您在单独的线程中运行它,您的代码将会起作用。
C#中的代码(抱歉):
var thread = new Thread(() =>
{
Settings.AutoStartDialogWatcher = false;
var ie = new IE(webBrowser1.ActiveXInstance);
ie.GoTo("http://www.google.com");
});
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
答案 1 :(得分:0)
如果我使用此代码,则可以使用
ie = New IE(WebBrowser1.ActiveXInstance)
ie.GoToNoWait("http://google.com")
While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete
Application.DoEvents()
End While
如果它不是最好的解决方案,但它对我有用