2010-09-14 14 views
1

J'utilise le code suivant pour lier watin à un webbrowser sur le winform.WatiN avec webbrowser

Dim w As IE = New IE(WebBrowser1.ActiveXInstance) 
Settings.AutoStartDialogWatcher = False 
w.GoTo("http://google.com") 

Je vois de Wireshark que le get chargé de la page, mais la forme est gelé jusqu'à ce qu'une exception est jeté « Délai d'attente tandis que Internet Explorer occupé ».

Existe-t-il un moyen de lier le watin au contrôle webbrowser?

Répondre

2

D'abord, je pense que cette ligne:

Settings.AutoStartDialogWatcher = False 

doit être au début, avant que l'instance IE soit créée.

Votre code fonctionnera si vous l'exécutez dans un fil séparé.

code en C# (désolé):

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(); 
0

Si j'utilise ce code, il fonctionne

ie = New IE(WebBrowser1.ActiveXInstance) 
ie.GoToNoWait("http://google.com") 
While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete 
    Application.DoEvents() 
End While 

Si ce n'est pas la meilleure solution, mais cela fonctionne pour moi