WatiN LogonDialogHandlers funktioniert unter Windows 7 nicht ordnungsgemäß

8

Ich habe kürzlich auf Windows 7, VS2010 und IE8 aktualisiert. Wir haben eine Automatisierungssuite, die Tests mit WaiN gegen IE durchführt. Für diese Tests muss der Anmeldedialog-Handler verwendet werden, um verschiedene AD-Benutzer im IE-Browser zu protokollieren.

Dies funktioniert perfekt, wenn Sie Windows XP und IE8 verwenden, aber jetzt, da Windows 7 dazu führte, dass das Dialogfeld Windows-Sicherheit nicht mehr erkannt wird, wird die Dialogbox gerade ignoriert. Dies ist die Methode, mit der der Browser gestartet wird:

%Vor%

irgendwelche Vorschläge oder Hilfe würden sehr geschätzt werden ...

    
Clint 15.05.2010, 17:48
quelle

7 Antworten

7

Aus irgendeinem Grund hatte der Code, den Clint gepostet hatte, Kommentare, anstatt den Benutzernamen, das Passwort und das Senden einzugeben, und referenzierte eine undefinierte Methode, aber ansonsten ist es in Ordnung. Hier ist ein kompletter (und funktionierender) Code:

%Vor%     
Nicholas Riley 13.07.2010 21:51
quelle
5

Dies kann auch als DialogHandler wie folgt umgestaltet werden:

%Vor%

Was ein bisschen schöner ist. Sie können es dann wie folgt verwenden:

%Vor%     
Julian Jelfs 06.04.2011 10:50
quelle
2

Wir haben dieses Problem schließlich gelöst, indem wir die Windows Automation 3.0-API verwendet haben, um das Dialogfeld aufzurufen und die Anmeldung zu übernehmen. Dies wurde folgendermaßen durchgeführt:

  1. Starten Sie einen IE-Prozess und weisen Sie ihn einem AutomationElement
  2. zu
  3. Sie haben jetzt die Möglichkeit, durch die untergeordneten Elemente des IEFrame zu navigieren, indem Sie den Benutzernamen und das Feld "Felder bearbeiten" eingeben.
  4. Dann senden Sie den Benutzernamen und das Passwort

Sobald der Browser authentifiziert wurde, hängen wir ihn an ein WatiN IE Browser-Objekt an. Der Code folgt unten:

%Vor%

Wir haben ein Tool namens UI Spy verwendet, um die Windows-Benutzeroberfläche zu untersuchen. Wenn Sie es gegen XP und Win7 ausführen, können Sie deutlich sehen, wie sich die Struktur der Windows-Sicherheitsdialogbox zwischen den beiden Betriebssystemen geändert hat.

    
Clint 21.05.2010 12:58
quelle
2

Nicholas Riley Beitrag funktioniert wie ein Charme, jedoch einschließlich der Verwendung von System.Windows.Automation könnte ein wenig schwierig sein. Ich dachte, Microsoft würde dies in die GAC setzen, aber sie nicht, zumindest für mich mit Windows 7 Professional. Ich habe das Automation Toolkit sogar von hier heruntergeladen .

Es zeigt sich, dass hier ein Thema im Stapelüberlauf ist, das anzeigt, wo die DLLs sind, die Sie durchsuchen können, um sie als Referenzen in Ihr Projekt aufzunehmen. Der Link dafür ist hier .

Im Wesentlichen müssen Sie nur zwei DLLs referenzieren. Und UIAutomationTypes.dll (beide im selben Verzeichnis).

    
farcrats 17.01.2011 22:31
quelle
0

Da niemand deine Frage beantwortet hat, werde ich, aber leider ohne fertige Lösung.

Ich habe in diesem Moment kein Windows 7, aber anscheinend ist WatiNs LogonDialogHandler nicht mit Windows 7 kompatibel, also musst du dein eigenes DialogHandler schreiben. Der einfachste Weg ist, von BaseDialogHandler zu erben. Sie können den Quellcode vorhandener Dialoghandler in WatiN betrachten. Ich habe mich selbst sehr einfach und nicht universell für den Umgang mit Zertifikatdialog . WinSpy ++ kann während der Implementierung sehr nützlich sein.

    
prostynick 20.05.2010 11:37
quelle
0

Wenn Sie festlegen, welcher Prozess in Windows 7 als Administrator ausgeführt wird, funktionieren die DialogHandler einwandfrei.

    
Drogo 27.05.2010 19:49
quelle
0

Ich habe versucht, die beiden obigen Automatisierungsbeispiele zu verwenden und festgestellt, dass sie das Szenario nicht behandelt haben, wenn die anderen Anmeldeinformationen gespeichert wurden. In diesem Fall wird nur das Kennwort in der Box angezeigt. In diesem Fall müssen Sie programmgesteuert auf den Abschnitt "Anderes Konto verwenden" klicken. Also habe ich den mitgelieferten Code geändert, um das zu tun und es funktioniert jetzt OK. Hier ist der modifizierte Code:

%Vor%

Danke an die anderen, die mich am meisten dorthin gebracht haben.

    
Julian Jelfs 06.04.2011 10:07
quelle

Tags und Links