how does selenium webdriver upload files to the browser? how does selenium webdriver upload files to the browser? selenium selenium

how does selenium webdriver upload files to the browser?


Nice question buddy...they have written a HTTP proxy to solve the Javascript secuirty restrictions. Using this proxy made it possible to side-step many of the constraints of the "same host origin" policy, where a browser won't allow Javascript to make calls to anything other than the server from which the current page has been served.

Moreover WebDriver uses the alternative approach of firing events at the OS level. As these "native events" aren't generated by the browser this approach circumvents the security restrictions placed on synthesized events and, because they are OS specific, once they are working for one browser on a particular platform reusing the code in another browser is relatively easy.

Most of the content above is referenced from the below..do read the following reference for more details on Selenium internals

http://www.aosabook.org/en/selenium.html


The upload windowns file function HTML codes are:

<input id="fileField" type="file" onchange="document.getElementById('textfield').value=this.value" name="position">   <input type="submit" value="导入">

You can use the following codes to finishing uploading a windows file. It works sucessfully and the codes don't include clicking a upload action.

driver.FileDetector = new LocalFileDetector();FindElement(By.Id("fileField")).SendKeys(@"C:\Users\admin\Desktop\ProfessionCodes.txt"); FindElement(By.CssSelector("input[type='submit']")).Click();


I have Uploaded photo on Facebook Using Selenium Webdriver and AutoIt

Steps are as below

Step 1

On eclipse code Upto (Upload a Photo) is as below:

WebElement Upload = Firefox.findElement(By.cssSelector("input[id^='u_']"));Upload.click();

Step 2

Downloaded and install AutoIt: http://www.autoitscript.com/site/autoit/downloads/ (Download ZIP)

Step 3

Write the code as below in notepad and saved it as PhotoUpload.au3

WinWaitActive("File Upload")Send("D:\Photo0116.jpg")   Send("{ENTER}")

Step 4: Right click on this .au3 File & compile it.

Step 5: Add code in script file as below:

try {    String[] commands = new String[]{};    // Location of the autoit executable    commands = new String[] {"D:\\My softwares\\install software\\selenium\\UploadPhoto3.exe"};    Runtime.getRuntime().exec(commands);}       catch (IOException e) {}

Step 6: Run script (PhotoUpload.java)

Step 7: Photo get uploaded successfully.