不幸的是,由于Selenium不支持
<input type="file" multiple>元素,您目前无法做到这一点(2013年1月,Selenium
2.29.1)。
项目开发人员自己对此有一个功能增强请求,但尚未实现。您可以在此处加注星标以将其在优先级列表中向上移动。
另外,据我所知,您无法真正
WebElement可靠地将文件从桌面拖到。
解决方法可能是使用AutoIT(仅Windows)或
Robot类(也将仅在与您类似的设置上起作用),然后在对话框中“盲目”键入路径:
driver.findElement(By.id("up-drop-zone-input")).click();Robot r = new Robot();r.keyPress(KeyEvent.VK_C); // Cr.keyRelease(KeyEvent.VK_C);r.keyPress(KeyEvent.VK_colon); // : (colon)r.keyRelease(KeyEvent.VK_colon);r.keyPress(KeyEvent.VK_SLASH); // / (slash)r.keyRelease(KeyEvent.VK_SLASH);// etc. for the whole file pathr.keyPress(KeyEvent.VK_ENTER); // confirm by pressing Enter in the endr.keyRelease(KeyEvent.VK_ENTER);它很烂,但应该可以。请注意,您可能需要这些:如何使机械手键入
:?并将String转换为KeyEvents(另外还有一些新功能和亮点
KeyEvent#getExtendedKeyCodeForChar(),它们的工作类似,但仅JDK7提供)。



