机械手类在文件上传情况下工作不一致

时间:2018-09-11 05:25:20

标签: selenium selenium-webdriver awtrobot

我有两个检查文件上传的测试用例,它们使用的代码如下所示。对于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 :(得分:2)

我已经使用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);