Handhabung von Windows-Datei-Uploads mit Selenium WebDriver
Selenium WebDriver bietet eine bequeme Möglichkeit, Datei-Uploads zu automatisieren, aber es gibt einige Szenarien, in denen der Standard Der Ansatz funktioniert möglicherweise nicht. Dieser Artikel befasst sich mit einem solchen Szenario und bietet eine Lösung.
Szenario:
Das bereitgestellte Element ist nicht anklickbar und die Standardmethode sendKeys() löst keine Datei aus Dialog hochladen.
Lösung:
Für die Zamzar-Website:
- Verwenden Sie sendKeys(), um die direkt einzugeben Geben Sie den Dateipfad in das Eingabefeld ein.
Für Uploadify-Website:
- Klicken Sie auf das Flash-Element, um das Datei-Upload-Fenster zu öffnen.
- Verwenden Sie die Robot-Klasse, um Tastatureingaben zu simulieren und den Dateipfad einzugeben.
Detaillierte Erklärung:
Zamzar-Website:
- Das Dateieingabefeld ist ein HTML-Element. Das Festlegen des Werts mit sendKeys() sollte wie erwartet funktionieren.
Website hochladen:
- Die Upload-Schaltfläche ist ein Flash-Objekt ohne verfügbar gemachte API für WebDriver.
- Durch Klicken auf die Schaltfläche wird ein nativer Datei-Upload-Dialog geöffnet, der außerhalb der Kontrolle von WebDriver liegt.
- Angenommen, die Dateinameneingabe hat nach dem Öffnen des Dialogs den Tastaturfokus, können Sie Robot dazu verwenden Senden Sie Tastenanschläge, um den Dateipfad einzugeben.
Alternative Lösung (Flash):
- Ändern Sie die Flash-Anwendung, um interne Methoden mithilfe der ExternalInterface-API von ActionScript verfügbar zu machen .
- Verwenden Sie WebDriver, um einen JavaScript-Aufruf auf der Webseite durchzuführen, um diese Methoden aufzurufen und das Hochladen von Dateien zu simulieren.
Diese Lösung ist technischer und erfordert Änderungen an der Flash-Anwendung, aber Es kann eine bessere Kontrolle über den Datei-Upload-Prozess ermöglichen.
Das obige ist der detaillierte Inhalt vonWie gehe ich mit Datei-Uploads in Selenium WebDriver um, wenn sendKeys() nicht funktioniert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!