我知道我不是第一个很难尝试使用Selenium从Windows文件浏览器上载文档的人(我之前做过),但是这个应用程序很奇怪完成了。
基本上,您单击一个input
元素,然后在键入键时出现Windows文件浏览器。
在测试中,我填充了剪贴板,并尝试在Windows文件资源管理器输入(似乎要集中显示)中发送文件路径:
String myString = text;
StringSelection stringSelection = new StringSelection(myString);
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(stringSelection, null);
Actions action = new Actions(driver);
action.sendKeys(Keys.chord(Keys.CONTROL, "v")).perform();
action.build().perform();
不幸的是,是浏览器输入接收到了粘贴的文本。
我愿意取消此输入的焦点,因此可能会将文本粘贴到Windows文件浏览器的输入中。
有什么主意吗?非常感谢。
答案 0 :(得分:1)
机器人帮助我摆脱了这个问题。
try {
Robot r = new Robot();
r.keyPress(KeyEvent.VK_CONTROL);
r.keyPress(KeyEvent.VK_V);
r.keyRelease(KeyEvent.VK_CONTROL);
r.keyRelease(KeyEvent.VK_V);
} catch (AWTException e) {
e.printStackTrace();
}
Actions action = new Actions(driver);
应该给了我一个提示:如果我们搞乱了驱动程序,那么就不可能搞乱Windows文件浏览器。