在selenium中使用robot类进行文件上传在远程计算机上运行正常但在远程连接关闭时失败

时间:2016-01-20 11:36:21

标签: java file-upload selenium-webdriver remote-server

我在Selenium webdriver中使用Robot Class创建了一个文件上传脚本。它工作正常,脚本按预期执行。现在,自动化设置在服务器上完成,并且在jenkins上安排作业以定期执行它。当远程桌面连接保持打开时,脚本执行正常,但在最小化/终止连接时文件上载失败。 有人可以帮忙吗?当远程连接最小化/终止时,机器人api无法定位元素的原因。

如果您可以提供其他选项以在远程服务器上执行此文件上载,那将会很有帮助

以下是HTML代码:

<label ng-if="comp.allowmultiple!=1" ng-click="bind_click(comp.code,comp.allowmultiple)" id="singleupload_label" class="browse ng-scope" ng-show="canShow(comp.code, comp.allowmultiple)">Click to Browse

<input name="file_upload" data-code="332" id="singleupload" class="inputStyle fixview filingUpload hidden " type="file"> 

Robot robot = new Robot();
Thread.sleep(10000);
robot.mouseMove(2,130);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);
Thread.sleep(5000);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);

1 个答案:

答案 0 :(得分:0)

如果输入类型是文件,即

<input type="file" id="upload">

您可以直接使用SendKeys

driver.findElement(By.id("upload")).sendKeys("File Path");