Класс робота работает некорректно для случая загрузки файла - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть два тестовых случая проверки загрузки файла, которые используют тот же кусок кода, как написано ниже. Для 1 теста он вставляет правильный путь загрузки файла, но для другого теста это единственный символ вставки 'v' а также у кого-нибудь есть идея, почему класс роботов не работает в случае, если мы запустим тестовые примеры на удаленной машине на jenkins.

// Строки кода для теста загрузки файла

Robot rob = new Robot();
StringSelection ss = null;
ss = new StringSelection("C:\\repository\\A\\B\\C\\resources\\no_fog.png");
rob.setAutoDelay(2000);
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null);
rob.setAutoDelay(1000);
rob.keyPress(KeyEvent.VK_CONTROL);
rob.keyPress(KeyEvent.VK_V);
rob.keyRelease(KeyEvent.VK_CONTROL);
rob.keyRelease(KeyEvent.VK_V);
rob.setAutoDelay(1000);
rob.keyPress(KeyEvent.VK_ENTER);
rob.keyRelease(KeyEvent.VK_ENTER);
rob.setAutoDelay(1000);

Может ли кто-нибудь оказать помощь по этому вопросу

1 Ответ

0 голосов
/ 11 сентября 2018

Я использовал класс Robot для загрузки файлов, и он отлично работает для меня, попробуйте это:

Robot robot = new Robot();
StringSelection sel = new StringSelection("Path of image");
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(sel, null);

 robot.delay(300);

  // Press Enter
 robot.keyPress(KeyEvent.VK_ENTER);
 robot.keyRelease(KeyEvent.VK_ENTER);

  // Press CTRL+V
 robot.keyPress(KeyEvent.VK_CONTROL);
 robot.keyPress(KeyEvent.VK_V);

// Release CTRL+V
 robot.keyRelease(KeyEvent.VK_CONTROL);
 robot.keyRelease(KeyEvent.VK_V);
 robot.delay(300);

 // Press Enter 
 robot.keyPress(KeyEvent.VK_ENTER);
 robot.keyRelease(KeyEvent.VK_ENTER);
...