调用sun.awt.HeadlesToolkit.getSystemClipboard()后出现java.awt.Hea



我想从本地目录导入一个文件。所以我正在做所有这些步骤。

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对我有效。

最新更新