调用sun.awt.HeadlessToolkit.getSystemClipboard()

时间:2017-01-23 08:51:09

标签: selenium selenium-webdriver robotframework awtrobot

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

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);

但是在调用java.awt.HeadlessException时它会让我getSystemClipboard(Unknown Source)。但是文件的位置是正确的。那么任何人都知道这个问题的解决方案吗?

1 个答案:

答案 0 :(得分:0)

浏览文档

http://www.oracle.com/technetwork/articles/javase/headless-136834.html

  

当依赖于显示的代码时抛出HeadlessException   设备,键盘或鼠标在没有的环境中调用   支持这些

     

如果您计划运行,也可以使用以下命令行   无头和传统环境中的相同应用:

     

java -Djava.awt.headless = true