我有一个图片文件上传,想要用 Selenium(java)进行测试。用户有两个选择。他可以通过拖放本地机器来推动图像,也可以点击“浏览...”#34;按钮。然后出现浏览器指定的文件选择器。
在 Selenium 中,我尝试了不同的东西。据我所知, Selenium 不提供浏览器外的操作。因此,测试拖放功能不是一种可能的解决方案。
所以我尝试单击“浏览”按钮并使用浏览器指定的文件选择器。我找到了YouTube video,其中某人成功选择了此对话框中的文件。他带着机器人课在键盘上做了一些事情。
getDriver().findElement(By.id(BROWSE_BUTTON)).click();
Thread.sleep(5000);
StringSelection stringSelection = new StringSelection("C:\\A.JPG");
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stringSelection, null);
Robot robot = new Robot();
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);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
当我调试这行时,测试在第1行的click()方法之后处于待定状态。 我使用 Firefox 31.1 。
有什么想法吗?也许有一些替代品?
在input[type='file']
中写入文件路径是无可奈何的,因为此输入是隐藏的。