我正在尝试自动上传文件。在我的应用程序中,我有一个浏览器链接,单击该链接将打开Windows文件上载弹出窗口。
因为它是一个链接,我不能使用SendKeys方法将文件位置发送到浏览链接或文件路径文本框(或者至少它在我尝试时不起作用)。我尝试了两种不同的方法来导入文件,两者都只能在我的本地机器上运行。因此,如果我从当地开始测试,并且在我当地的测试,我没有任何问题。
选项1 - 使用机器人
//Click Browse Link
basicClick(AppObjects.OM_Import_BrowseLink);
//Wait for Windows OS file upload popup
sleep(3000);
StringSelection SS = new StringSelection(filePath);
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(SS, null);
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
sleep(1000);
robot.keyRelease(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);
sleep(1000);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
sleep(3000);
选项2 - 使用AutoIt
basicClick(AppObjects.OM_Import_BrowseLink);
sleep(3000);
Runtime.getRuntime().exec("\\\\IP Address\\OrgMapper\\AutoItScripts\\File Upload Test.exe");
sleep(4000);
我遇到的问题是我在Selenium Grid上执行这些测试。我从本地机器开始测试,然后将它们发送到网格运行。一旦它到达机器人或自动部件,它就会在我的本地机器上执行那些命令/ .exe,而不是运行测试的网格节点。
有人可以指出我犯的错误。我希望机器人或AutoIt脚本在运行测试的网格节点上运行,而不是我开始测试的本地机器。