前端测试 Webdriver 使用模拟键盘上传文件

zhonghui · 2016年01月21日 · 最后由 云材网 回复于 2016年01月22日 · 2435 次阅读

网页上上传文件的有点坑,不是 input 属性的 type=file 那种,所以使用不了 sendkeys(filepath),所以坑坑啊~
期望是:
1.打开上传文件 windows 选择窗口
2.提前将文件路径复制到剪贴板
3.模拟键盘使用 ctrl+v,复制路径,回车

第一次使用了 Action 方法:

action.sendKeys(Keys.CONTROL).sendKeys("v").keyUp(Keys.CONTROL).perform();
         action.sendKeys(Keys.ENTER).perform();

死活没有成功,期间也换了多种写法,没有奏效,这 2 步程序是执行了,但是没有粘贴和回车。
不造原因是啥,难道是没有切换到 windows GUI 还是在页面,可是模拟按键不应该分这个吧~

第二次使用了 Robot:
原理一样,还是按下 ctrl+v 释放按键,按下回车,释放,结果成功了~

Robot robot = new Robot();  
        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 条回复 时间 点赞

蛮好的

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册