我是一名 JavaScript/Java 开发者,一直在尝试弄清 Selenium Webdriver 自动化框架如何从文件系统上传文件。通过 JavaScript 设置文件输入是不可能的,因为这是一种安全违规行为。但是 WebDriver 一些命令似乎可以实现文件上传:
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();
所以他们是通过发送键来设置值的?我不明白。我已经查看了这里找到的源代码:http://code.google.com/p/selenium/source/checkout,但仍然找不到他们在哪里实现这个功能。
编辑:我的问题不是如何在Selenium中实现这一点,而是Selenium开发人员是如何做到这一点的?他们是如何绕过JavaScript中的安全限制的?他们是如何上传文件的?