I am new to selenium, I have a script that uploads a file to a server.
In the ide version sort of speak it uploads the file, but when I export test case as python 2 /unittest / webdriver it doesn't upload it..
It doesn't give me any errors, just doesn't upload it...
The python script is:
driver.find_element_by_id("start-upload-button-single").click()
driver.find_element_by_css_selector("input[type=\"file\"]").clear()
driver.find_element_by_css_selector("input[type=\"file\"]").send_keys("C:\\\\Documents and Settings\\\\pcname\\\\Desktop\\\\ffdlt\\\\test.jpeg")
I searched for solutions but I haven't found any except integrating it with AutoIt or AutoHotKey...
The first line opens the File Upload Box of Firefox.
Your code work perfectly for me (I test it with Firefox, Chrome driver)
One thing I supect is excessive backslash(\
) escape.
Try following:
driver.find_element_by_id("start-upload-button-single").click()
driver.find_element_by_css_selector('input[type="file"]').clear()
driver.find_element_by_css_selector('input[type="file"]').send_keys("C:\\Documents and Settings\\pcname\\Desktop\\ffdlt\\test.jpeg")
or
driver.find_element_by_id("start-upload-button-single").click()
driver.find_element_by_css_selector('input[type="file"]').clear()
driver.find_element_by_css_selector('input[type="file"]').send_keys(r"C:\Documents and Settings\pcname\Desktop\ffdlt\test.jpeg")
Did you tried this single piece of code:
driver.find_element_by_css_selector("input[type=\"file\"]").send_keys("C:\\Documents and Settings\\pcname\\Desktop\\ffdlt\\test.jpeg")
If I run the following lines from the IDE it works just fine, it uploads the file.
Command | Target | Value
_____________________________________________________________
open | /upload |
click | id=start-upload-button-single |
type | css=input[type="file"] | C:\\Documents and Settings\\cristian\\Desktop\\ffdl\\MyWork.avi
But when I export it for Python webdriver it just doesn't upload it, I have tried everything.
The last resort is to make it work with AutoHotKey, but I want it to work.
What I have done is tested the solutions that I have found with/on other sites to see if the problem is only on the site that i am trying to make the upload(youtube), the solutions work(EX: http://dev.sencha.com/deploy/ext-4.0.0/examples/form/file-upload.html) they are valid, you can upload a file to most servers, it just doesn't work on it.
Thank you for your help.
This works for me:
# Upload file
elem = driver.find_element_by_name("File")
elem.send_keys(r"D:\test\testfile04.txt")
elem = driver.find_element_by_partial_link_text("Upload File")
elem.click()
来源:https://stackoverflow.com/questions/18823139/selenium-webdriver-upload-file