Die Interaktion mit pop-up-Boxen, die mit Selen in python

Ich versuche, die Selen-Modul in python zu generieren, die eine text-Liste von einer website, speichern Sie es in einem Verzeichnis, und Blättern Sie zu, dass text-Liste auf einer anderen Website zu übermitteln.

Arbeite ich auf das Skript in zwei Teile - 1. Holen Sie sich die Metadaten und 2. Die Daten der Bestellung. Ich habe erfolgreich abgeschlossen, das Skript in Teil 1, nur für die Letzte Sache: die Wahl zum speichern der Metadaten-Datei, die gerade erzeugt. Ich ließ Sie allein, um die Arbeit an Teil 2, in der Hoffnung ich würde stolpern die Antwort, aber ich bin einfach zu erreichen, um gleiche problem, wenn der pop-up-Fenster wählen Sie "Datei" kommt.

In der Dokumentation, ich sagte, dass Selenium WebDriver hat eine eingebaute Unterstützung für den Umgang mit popup-Dialogfelder, und dass nach dem Start ein Dialogfeld an, wenn ich den Anruf alert = driver.switch_to_alert() dann kann ich "akzeptieren, zu entlassen, zu Lesen, seinen Inhalt, oder sogar geben Sie in eine Eingabeaufforderung eingeben."

Aber es funktioniert nicht. Wenn ich versuche alert.text('some text') oder alert.send_keys(Keys.TAB), ich erhalte die Fehlermeldung NoAlertPresentException: Message: No alert is present und nach hinzufügen, den Befehl zu warten, bekomme ich die Fehlermeldung TimeoutException: Message:

Sind die popups, ich bin immer (screenshots angehängt) nicht erkannt durch Selen? Wenn ja, wie kann ich mit Ihnen interagieren? Wie es scheint, mit dieser zu speichern und/oder hochladen von Dateien ist etwas, das viele Menschen zu tun haben, aber ich kann nichts finden auf Google. Speziell möchte ich wählen Sie 'Datei Speichern' und dann 'OK' zum ersten Bild und zum zweiten möchte ich auf durchsuchen, um die Datei (d.h. geben Sie den Pfad in das Feld Dateiname) und klicken Sie auf 'Öffnen.' Ich möchte nicht nur meine Firefox-Einstellungen automatisch zu speichern, da diese schließlich ausgeführt werden, in einer anderen Umgebung, und das wird nicht helfen, mein zweites problem.

Dank!

BEARBEITEN:
Ich Teste mein Skript auf windows, aber es wird irgendwann implementiert werden, auf einem linux-cloud-server. Ich dachte, ich würde zu haben, um wechseln zu PhantomJS webdriver (das war wahrscheinlich zu meinem problem noch schlimmer) zu tun headless browsing, aber ich fand einen Weg, um firefox. Ich denke, all dies bedeutet, ist, dass ich kann nicht mit AutoIT zu lösen mein problem.

Die Interaktion mit pop-up-Boxen, die mit Selen in python

  • - Treiber.switchto.alert(in Java) verwenden wir für die JavaScript-Dialoge. Sie sind alertbox, conformationbox und Popupbox. Aber das Dialogfeld, das Sie sehen, nicht gehört zu einer der oben genannten, so dass Sie nicht in den Griff mit Alarm. Für eine detaillierte Erklärung der Warnmeldungen Sie können beobachten video youtube.com/watch?v=3T0YaroB2fk. Möglicherweise müssen Sie versuchen, AutoIT etc.. für ur-problem.
  • Sie können versuchen, etwas, das äquivalent der Roboter-Klasse in java.
InformationsquelleAutor user20408 | 2015-01-05
Schreibe einen Kommentar