Gibt es eine API, mit der ich einen Dialog zum Herunterladen von Dateien in Firefox bearbeiten kann? (Ich möchte auf diejenige zugreifen, die angezeigt wird, wenn der Benutzer etwas tut, und nicht selbst eine initiieren.)
Ich möchte über Selen auf diesen Dialog zugreifen (und ob der "privilegierte Modus" von Selen für den Zugriff auf die Chrome-Oberfläche ausreicht, weiß ich auch nicht genau).
Antworten:
Nicht, dass ich davon Wüste. Sie können Firefox jedoch so konfigurieren, dass der Download automatisch gestartet und die Datei an einem bestimmten Ort gespeichert wird . Ihr Test könnte dann überprüfen, ob die Datei tatsächlich angekommen ist.
quelle
Ich habe eine Lösung für dieses Problem. Überprüfen Sie den Code:
quelle
Content-Disposition: attachment
. Firefox scheint in diesem Fall immer einen Dialog zu öffnen!setPreference("browser.helperApps.neverAsk.saveToDisk", "application/xls");
Ich hatte das gleiche Problem, fand aber eine Lösung. Ich habe es genauso gemacht wie dieser Blog .
Natürlich war dies Java, ich habe es in Python übersetzt:
In meinem Beispiel war es eine CSV-Datei. Aber wenn Sie mehr brauchen, sind dort in der gespeichert
~/.mozilla/$USER_PROFILE/mimeTypes.rdf
quelle
Webanwendungen generieren drei verschiedene Arten von Popups. nämlich,
Im Allgemeinen werden die JavaScript-Popups vom Webanwendungscode generiert. Selenium bietet eine API für die Verarbeitung dieser JavaScript-Popups, z
Alert
.Der einfachste Weg, Browser-Popup- und Download-Dateien zu ignorieren, ist die Verwendung von Browser-Profilen. Es gibt verschiedene Möglichkeiten, dies zu tun:
Methode 1
Stellen Sie vor dem Arbeiten mit Popups für Browserprofile sicher, dass die Download-Optionen standardmäßig auf Datei speichern eingestellt sind.
(Öffnen Sie Firefox) Extras> Optionen> Anwendungen
Methode2
Verwenden Sie das folgende Snippet und nehmen Sie bei Bedarf Änderungen vor.
quelle
Ich stand vor dem gleichen Problem. In unserer Anwendung wurde die Instanz von FireFox erstellt, indem die DesiredCapabilities wie folgt übergeben wurden
Aufgrund der Vorschläge anderer habe ich meine Änderungen vorgenommen als
Dies diente dem Zweck, aber leider scheiterten meine anderen Automatisierungstests. Und der Grund war, ich habe die Fähigkeiten entfernt, die früher übergeben wurden.
Noch ein bisschen im Internet surfen und einen alternativen Weg finden. Wir können das Profil selbst in den gewünschten Funktionen einstellen.
Der neue Arbeitscode sieht also so aus
quelle
Weiß nicht, aber Sie könnten vielleicht die Quelle eines der Firefox-Download-Addons überprüfen.
Hier ist die Quelle für eine, die ich als Download-Statusleiste verwende .
quelle
Die meisten Browser (in meinem Fall Firefox) wählen standardmäßig die Schaltfläche OK. Also habe ich es geschafft, dies mit dem folgenden Code zu lösen. Grundsätzlich wird die Eingabetaste für Sie gedrückt und die Datei wird heruntergeladen.
quelle
Ich hatte das gleiche Problem, ich wollte keinen Zugriff auf Save Dialogue.
Der folgende Code kann helfen:
Je nach Dateityp, der heruntergeladen wird, müssen Sie Inhaltstypen angeben .
Sie können mehrere Inhaltstypen angeben, die durch ' ; '
z.B:
quelle
Anstatt den nativen Dialog zum Herunterladen von Dateien wie folgt auszulösen:
Normalerweise mache ich das stattdessen, um den nativen Dialog zum Herunterladen von Dateien zu umgehen. Auf diese Weise funktioniert es in ALLEN Browsern:
Dies erfordert lediglich, dass Sie eine Methode implementieren
getFileFromURL
, die Apache HttpClient verwendet, um eine Datei herunterzuladen und einen Dateiverweis an Sie zurückzugeben.Wenn Sie Selenide verwenden , funktioniert dies auf die gleiche Weise wie bei der integrierten
download()
Funktion zum Herunterladen von Dateien.quelle
Ich habe Ihr Ziel nicht verstanden. Möchten Sie, dass Ihr Test die Datei automatisch herunterlädt, wenn der Test ausgeführt wird? Wenn ja, müssen Sie bei der Testausführung ein benutzerdefiniertes Firefox-Profil verwenden.
Führen Sie im benutzerdefinierten Profil den Test zum ersten Mal manuell aus. Wenn der Download-Dialog angezeigt wird, aktivieren Sie das Kontrollkästchen Auf Festplatte speichern. Aktivieren Sie außerdem das Kontrollkästchen Immer diese Aktion ausführen, um sicherzustellen, dass die Datei beim nächsten Ausführen des Tests automatisch heruntergeladen wird.
quelle
Darüber hinaus können Sie hinzufügen
So entfernen Sie die heruntergeladene Dateiliste, die standardmäßig angezeigt wird und einen Teil der Webseite verdeckt.
Meine Gesamteinstellungen sind:
quelle