2017-12-16 3 views
-2

Ich habe einen Browser auf einem Remote-PC gestartet und möchte eine Zip-Datei aus dem lokalen Ordner auf diesem Remote-PC in meine Webanwendung importieren. Wenn ich auf die Schaltfläche "Importieren" klicke, wird ich zu einem Datei-Upload weitergeleitet, der mir keinen XPath für diesen Frame anzeigt. Ich habe versucht, den XPath von Import-Knopf zu erhalten und wie unten auf das Objekt send_keys dieser lokalen Dateipfad verwenden,Wie lade ich Dateien in Python Selen hoch?

importbutton=driver.find_element_by_xpath(".//*@id='templateUploadButton_label']/img") 
importbutton.send_keys("C:/../pathtofile") 

aber es gibt mir einen Fehler wie dieser

selenium.common.exceptions.WebDriverException: Message: unknown error: cannot focus element

Allerdings, wenn ich durchführen importbutton.click() öffnet den Datei-Upload-Frame.

Manuelle Schritte sein: Klicken Sie auf Importieren -> Öffnet Datei hochladen Rahmen und ich wählte einen lokalen Pfad und klicken Sie auf Öffnen, Es zeigt ein Dialogfeld, wenn wir fortfahren können, hochladen und ich drücken YES.

Antwort

0
.//*@id='templateUploadButton_label']/img 

Sie versuchen, zu einem besonderen img Element zu senden, nicht die input - also den Fehler.

Ändern Sie Ihren Locator, um das Element input mit type="file" zu targetieren.

+0

Hallo, ich habe jetzt die richtige genommen und es funktionierte, als ich den Treiber vom Server startete, Dateipfad ist der Pfad im Server. Aber als ich den Treiber in der Ferne startete, sagte er mir Datei nicht gefunden Fehler. Ich habe die Speicherorte unter C: und Desktop geändert, aber die Datei wird nicht hochgeladen. – Elshadai

Verwandte Themen