title: how does selenium webdriver upload files to the browser?
body: <p>I am a javascript/java developer and I have been trying to figure out how the selenium webdriver automation framework uploads files from the file system.  It is impossible to set a file input via javascript because it is a security violation.  Yet somehow webdriver is able to do this with the following command:</p>
  
  <pre><code>driver.setFileDetector(new LocalFileDetector());
  WebElement upload = driver.findElement(By.id("myfile"));
  upload.sendKeys("/Users/sso/the/local/path/to/darkbulb.jpg");
  driver.findElement(By.id("submit")).click();
  </code></pre>
  
  <p>So they are setting the value by sending keys to it? I don't get it.  I have looked through the source code found here:
  <a href="http://code.google.com/p/selenium/source/checkout" rel="noreferrer">http://code.google.com/p/selenium/source/checkout</a>
  I am still not able to find where they do this.</p>
  
  <p>Edit: My question is not how to do this with selenium, but how did the selenium developers make this possible?  How did they get around the security restrictions in javascript?  How are they uploading the file?</p>