我是一名 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 中的安全限制的?他们如何上传文件?