周华健
周华健

Reputation: 23

how to handle file upload by a button in robot framework

when testing the webUI, when uploading a file through button,but when use input element, but it is ugly, If you have some ideas not replace button to handle uploading file.

Upvotes: 2

Views: 1830

Answers (2)

Omar Mughrabi
Omar Mughrabi

Reputation: 133

I had the same issue and I was able to solve it using other libraries. Selenium2Library support "Input" field, so it only works when you have an input field to select the field then click other button to make the upload. Which is an old fashioned scenario. In order to achieve this you need other libraries that control the windows control like AutoItLibrary or SikuliLibrary Below is a quick example using either ways

AutoItLibrary:

    sleep           2s
    Send            ${ImagePath}   # This sends the file path to the entery field where the cursor is focused 
    sleep           3s
    Control Click  strTitle=Open, strText=Open, strControl=1, strButton=Button1, nNumClicks=1, nX=1228, nY=291
    # In some cases some parameters cannot be identified easily so yo might just use only the buttong name as the following
    # Control Click   ${EMPTY}   ${EMPTY}    Button1    ${EMPTY}    1

For SikuliLibrary you can use the Press key to click the controllers and you can find many ways to emulate the copy paste either using javascripts or other key words. For the enter emulation on SikuliLibrary use the following:

Press Special Key       ENTER       #Case senstive (to press enter with Sikuli)

Upvotes: 0

Krishna Barri
Krishna Barri

Reputation: 1073

Selenium 2 library provides "Choose File" keyword to upload the file. It takes two arguments, first is locator for the button and second is path to the file which needs to be uploaded.

Example: choose file xpath=.//div/input ${TEMPDIR}${/}file_pa.csv

Reference: http://robotframework.org/Selenium2Library/Selenium2Library.html#Choose%20File

Upvotes: 1

Related Questions