java - 使用 selenium 中的机器人类上传文件在远程计算机上工作正常,但在远程连接关闭时失败

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

我已经使用 Selenium webdriver 中的 Robot 类创建了一个用于文件上传的脚本。它工作正常,脚本按预期执行。现在自动化设置是在服务器上完成的,并且在 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);

最佳答案

如果输入类型是文件,即

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

您可以直接使用SendKeys

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

关于java - 使用 selenium 中的机器人类上传文件在远程计算机上工作正常,但在远程连接关闭时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34898953/

相关文章:

java - Appium:我有 2 个类,ClassA 和 ClassB。我正在使用 testng.xml 文件执行这 2 个类。我想知道 ClassB 的数据,我需要放置 @Beforeclass 吗?

java - 以编程方式退出应用程序的适当方法是什么?

java - 通过 FasterXML-Jackson 反序列化 Codehaus-Jackson 注释类实体?

java - 在基于 JPanel 的行中按钮的位置 'menu bar'

iOS通过wifi上传文件到应用

python - 如何等待页面自动滚动完成

java - 如何让我的 for 循环正确打印我的 LinkedList 队列

python - 如何将 InMemoryUploadedFile 对象复制到磁盘

codeigniter - 如何在 Codeigniter 中上传时为文件名添加前缀?

selenium - 如何强制 Firefox Selenium Webdriver(Python) 接受任何 SSL 证书