selenium webdriver upload file

后端 未结 5 1205
有刺的猬
有刺的猬 2020-12-01 21:47

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

相关标签:
5条回答
  • 2020-12-01 21:58

    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.

    0 讨论(0)
  • 2020-12-01 22:01

    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")
    
    0 讨论(0)
  • 2020-12-01 22:04

    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")
    
    0 讨论(0)
  • 2020-12-01 22:04

    Using Pyautowin

    from pywinauto import Desktop
    driver.find_element_by_id("start-upload-button-single").click()
    app = Desktop()['Open']   # About `Open`, checkout upload Dialog title
    app.wait('visible')
    app.Edit.type_keys(R"C:\Documents and Settings\pcname\Desktop\ffdlt\test.jpeg", with_spaces=True)
    app['Open'].click()  # About `Open`, checkout upload Button name
    
    0 讨论(0)
  • 2020-12-01 22:20

    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()
    
    0 讨论(0)
提交回复
热议问题