2017-01-23 513 views
0

我想從本地目錄中導入一個文件。所以我正在做所有這些步驟。調用sun.awt.HeadlessToolkit.getSystemClipboard()後java.awt.HeadlessException()

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)。但是文件的位置是正確的。那麼任何人都知道這個問題的解決方案?

回答

0

通過文檔

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

甲HeadlessException的走向時取決於一個顯示 設備上的代碼,鍵盤或鼠標被稱爲在不 支持任何這些的環境被拋出

如果您打算在無頭和傳統環境下運行 相同的應用程序,還可以使用以下命令行:

的java -Djava.awt.headless =真

+0

我檢查isHeadless()方法的值和默認值是true。同樣我也設置了System.setProperty(「java.awt.headless」,「true」);但是我得到了同樣的異常。 – Luisha

相關問題