2017-06-28 2 views
0

Ich versuche, eine Datei in ein Formular zu laden:eine Datei Selen mit hochladen Failing

search = driver.find_element_by_xpath("//input[@type='file']") 
search.send_keys("D:/test.txt") 
search.send_keys(Keys.RETURN) 

hält zeigt dieser Fehler auf:

Selen. common.exceptions.WebDriverException: Nachricht: die Datei wurde nicht gefunden : D: /test.txt

die Datei an seinem Platz ist, wo denken Sie ist das Problem?

Antwort

1

Ich denke, der Grund ist innerhalb des Schrägstrichs in den Pfad verwendet - ich denke, es erfordert stattdessen einen Backslash.

Was ist, wenn Sie versuchen, search.send_keys("D:\\test.txt") zu verwenden? Nicht sicher, ob ein doppelter Backslash dafür erforderlich ist, also können Sie auch mit einem einzelnen Backslash versuchen.

EDIT

ich meinen eigenen Code auf einfache Form versucht, nur mit dem input [type = file] und mit Submit-Button:

search = browser.find_element_by_xpath("//input[@type='file']")  
search.send_keys("F:\\test.txt")         
submit = browser.find_element_by_css_selector("input[type=submit]") 
submit.click() 

Und irgendwie funktionierte es ganz gut, nur hatte Um den umgekehrten Schrägstrich zu umgehen und die Schaltfläche Senden zu verwenden, anstatt die Eingabetaste zu drücken.

So stellen Sie sicher, dass Ihre Datei tatsächlich dort ist, innerhalb des Pfades, den Sie gepostet haben, und solcher Code (zumindest unter Windows) funktioniert gut. Außerdem sollten Sie sicherstellen, dass Sie über die Berechtigung für diese Datei verfügen.

+0

Versuchte einzelne und doppelte Backslashes und beide fehlgeschlagen. –

+0

Ich änderte meine Antwort, nachdem ich den Code von mir selbst mit einfachem Formular mit 2 Eingabefeldern ausprobiert hatte - file + submit. – Shuji

+0

Arbeitete für mich, Danke! –