2017-01-23 43 views
0

Я хочу импортировать один файл из своего локального каталога. Поэтому я делаю все эти шаги.java.awt.HeadlessException после вызова sun.awt.HeadlessToolkit.getSystemClipboard()

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() и по умолчанию значение верно. Опять же я установил System.setProperty («java.awt.headless», «true»), но такое же исключение я получаю. – Luisha