Nach dem Öffnen der Anwendungs-URL wird der Benutzer zur Anmeldeseite weitergeleitet, auf der sich eine Anmeldeschaltfläche befindet.
%Vor%Wenn der Benutzer nun auf die Schaltfläche "Anmelden" klickt, wird die URL im selben Fenster wie bei xyz.com geändert und zeigt ein Authentifizierungs-Popup-Fenster für den Anmeldevorgang an, ähnlich wie unten abgebildet.
Um Benutzername und Passwort im Authentifizierungsfenster einzugeben, habe ich den folgenden Code ausprobiert
%Vor%Es hat nicht funktioniert. Dann habe ich versucht, Windows-Authentifizierung Popup direkt zu öffnen (durch Kopieren der URL nach dem Klick auf die Schaltfläche Anmelden) mit dem obigen Code, es funktioniert
%Vor%Ich bin ein bisschen verwirrt. Wenn ich die URL meiner App abc.com öffne, klicke auf die Schaltfläche Anmelden, benutze autoit, es wurden keine Zugangsdaten eingegeben. Aber wenn ich direkt die Fenster-Authentifizierungs-URL xyz.com anstelle von app URL abc.com sende und autoit verwende, funktioniert es.
Kann jemand vorschlagen, was ich hier vermisse? Ich habe auch versucht, das Fenster zu wechseln, nachdem ich auf die Schaltfläche "Anmelden" geklickt habe, die neue URL und dann den Autoit-Befehl denkend, aber es hat trotzdem nicht funktioniert.
%Vor%Irgendeine Idee dazu?
Hinweis: Mir ist aufgefallen, dass ich auf "Anmelden" klicke, Fenster wird unendlich geladen & amp; Der Cursor ist aktiv auf Benutzername Textfeld der Windows-Authentifizierung poup. Auch wenn das Windows-Authentifizierungsfenster erscheint, funktioniert weder der selenium-Befehl noch der autoit-Befehl.
Der Dialog wird von Selen als Alarm behandelt. In c # sieht der Code zum Eingeben der Anmeldeinformationen für einen Firefox-Test folgendermaßen aus:
%Vor%Die erste Zeile weist den Treiber an, nach offenen Alarmen zu suchen (das Dialogfeld).
Die zweite Zeile sendet den Benutzernamen und das Passwort an die Warnung
Die dritte Zeile sendet dann diese Anmeldeinformationen und, vorausgesetzt, sie sind gültig, wird der Test fortgesetzt.
Angenommen, Sie testen mit Firefox, müssen Sie keine zusätzlichen Frameworks verwenden, um mit dieser Authentifizierungsbox umzugehen.
Offenbar müssen Sie nur die URL mit den grundlegenden Authentifizierungsdaten öffnen. Können Sie das zuerst versuchen?
%Vor%Wenn Sie immer noch das Popup erhalten, versuchen Sie dies
%Vor%Es sollte das Popup
stoppen Stimme Aldos Antwort zu. Versuchen Sie es mit https
anstelle von http
like:
Sie können nach anderen Möglichkeiten suchen hier
Sie müssen zu der Warnung wechseln, die sich von einem Fenster unterscheidet. Sobald die Warnung vorhanden ist, wechseln Sie die Warnmeldung, und verwenden Sie dann die .authenticate
-Methode, um ihr den Benutzernamen und das Kennwort zu geben.
Vielleicht möchten Sie auf die Bedingung EC.alert_is_present
expected warten, um sicherzustellen, dass die Warnung vorhanden ist.
Probieren Sie dies aus (wobei page_title der Titel des Popup-Fensters ist und Sie sich auf einem Windows-Rechner befinden):
%Vor%Ein Beispiel für die Einrichtung von AutoIt mit Python finden Sie hier: Aufruf von AutoIt-Funktionen in Python
Mit Firefox ist es möglich, das Authentifizierungs-Popup zu vermeiden, indem die Anmeldeinformationen bei Anforderung automatisch bereitgestellt werden.
Sie müssen Code auf Browserebene einspeisen und ausführen, um den Authentifizierungsversuch zu erkennen und die Anmeldeinformationen festzulegen.
Hier ist ein funktionierendes Beispiel:
%Vor%In diesem Stadium ist es nicht der Browser, den Sie automatisieren. Sie automatisieren die Tastatur .
%Vor%Verbessere die Schlafzeiten durch Treffer und Fehlschläge.
Hinweis: Möglicherweise müssen Sie dazu Threading verwenden.
Zu Ihrer Information, hier ist ein aktuelles Beispiel, das für mich funktioniert hat. Tweak herum, um es schneller zu machen. Ich wollte nur testen, ob das funktioniert, aber langsam.
%Vor% Beachte auch: Wenn du auf ubuntu bist, benötigt keyboard
root-Berechtigung, also führe das Skript so aus -