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!
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn