1

I am writing a script where I click on a button (Select Photo) which opens up a file upload (explorer) box. How am I to set my file name?

This is the code I'm using to click on the Select Photo button (ruby)

driver.find_element(:id, "fileUploadButton").click

I've seen some posts that says I do not need to click on the button but to send the path to the file/image I want to upload. So how would I upload a file on c:\temp\mypicture.jpg?

Here's my full and simple code.

driver.navigate.to "http://blah blah"  #the real site is an internal site
driver.find_element(:id, "claimGiftButtonDesktop").click
sleep 5
driver.find_element(:id, "fileUploadButton").click

After clicking the fileUploadButton, that's when the explorer window will show. If I manually click on Open or double click on it, then a loading modal shows and the image is shown on the website.

Here is an IDE recording which works. I'm just having problems translating this into ruby.

open /PromoSite
click id=claimGiftButtonDesktop
click id=fileUploadButton
type  id=fileInputElem     #Value C:\\temp\\file.jpg
click id=viewProductPreviewButton

I've also added a screen shot. I click the button and the File Upload shows up. This should be something easy, so I must not be focusing on the correct id. enter image description here

2 Answers 2

1

As I have no your code, assume we are testing https://encodable.com/uploaddemo/

@driver.navigate.to "https://encodable.com/uploaddemo/"
element = @driver.find_element(:css, 'input[type=file]')
element.send_keys   "/full/path/to/file.jpg"
@driver.find_element(:css, 'input[type=button]').click

So, you should send the full path to the input field and press the "submit" button

Sign up to request clarification or add additional context in comments.

Comments

0

I know this is coming a year late but I just started writing a script in Selenium/Ruby and it took me some time to figure it out so wanted to post my solution (and it was as simple as 2 lines!):

*the first line inserts the file path WITHOUT clicking on the browse button, key is to separate directories using double back slashes \\

*the second line clicks on the Save/Upload button

driver.find_element(id: "Document_upload").send_keys("C:\\Users\\me\\Desktop\\my_file.txt")
driver.find_element(id: "save").click

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.