我想从本地目录导入一个文件。所以我正在做所有这些步骤。
public static void sendFile(WebDriver webdriver, String text)
{
StringSelection stringSelection = new StringSelection(text);
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stringSelection, null);
webdriver.switchTo().activeElement();
waitFor.waitTimeOut(5 * 1000);
Robot robot = null;
try {
robot = new Robot();
}
catch (AWTException e)
{
throw new RuntimeException(e);
}
log.debug("Entering: " + text);
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_V);
waitFor.waitTimeOut(5 * 1000);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
}
我把这种方法叫做
String text = "C:/text.xml"
sendFile(new FirefoxDriver(),text);
但它在呼叫getSystemClipboard(Unknown Source)
时将我抛出java.awt.HeadlessException
。但是文件的位置是正确的。那么,有人知道这个问题的解决方案吗?
浏览文档
http://www.oracle.com/technetwork/articles/javase/headless-136834.html
当代码依赖于显示时抛出HeadlesException设备、键盘或鼠标在没有支持这些中的任何一个
如果计划运行无头和传统环境中的相同应用程序:
java-Djava.awt.headless=真正的
将无头标志转到false
对我有效。