我有一个图像文件上传并想测试它硒(java)。用户有两个选择。他可以通过从本地计算机拖放来推送图像,也可以单击“浏览...”按钮。然后出现浏览器指定的文件选择器。
In Selenium我尝试了不同的事情。据我所知Selenium不提供浏览器之外的操作。因此测试拖放功能并不是一个可能的解决方案。
因此,我尝试单击“浏览”按钮并使用浏览器指定的文件选择器。我找到了一个Youtube 视频 https://www.youtube.com/watch?v=NXhi5QwY4mk有人在此对话框中成功选择文件。他参加机器人课程是为了在键盘上做一些事情。
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() 方法之后挂起。
我用火狐31.1.
有任何想法吗?也许还有一些替代方案?
将文件路径写入input[type='file']
没有其他选择,因为此输入是隐藏的。
隐藏文件输入不是问题Firefox or Chrome. And, v2.45.0.6确保IE也适用于隐藏文件输入。很简单sendkeys()
using input[type='file']
应该适合你。看变更日志 https://raw.githubusercontent.com/SeleniumHQ/selenium/master/cpp/iedriverserver/CHANGELOG
EDIT
对于 FF 来说,这也可能是一个兼容性问题。但是,最新版本的 FF 尚不支持Selenium
. See this https://stackoverflow.com/questions/30383949/upload-picture-element-is-not-currently-visible/30384313#30384313
2nd Edit
Selenium 2.46 已发布,IEDriver 现在应该可以使用隐藏文件输入标记。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)