TeamCity编译执行selenium上传窗口脚本缺陷
2015-07-04 18:05 编写本文
TeamCity编译selenium脚本,对于上传窗口处理只支持sendKeys的使用,不支持模拟人为按下Enter键和使用autoIt等操作,即使本地调试通过的脚本,提交编译执行后,也是报错,原因是teamCity编译执行脚本的过程中,只是后台启动相应浏览器的driver,和浏览器对应的进程,没有和人为操作一样的真实在前台打开一个浏览器界面导致的。发现这个缺陷还得从编写上传课件测试用例脚本说起。



- 点击界面【选择】按钮
- 在弹出的窗口使用javaAPI之Robot,模拟键盘按下Ctrl+V,粘贴课件资源路径
- 再按下Enter键,实现了课件的上传
- 判断此时系统是否有弹出蒙板(ps:此处只要判断窗口中是否有蒙板中特有的文字出现即可)
driver.findElement(By.id("updatePicId")). sendKeys("D:\1.jpg");//上传图片
Assert.assertTrue(driver.getPageSource().contains("上传图片成功"));//判断是否有上传图片成功提示字符串
driver.findElement(By.xpath("//ul/li[5]/div[1]/label/div/object")).click();//点击【选择】按钮
this.useSysClipboard("D:\1.mp4");//将要上传的文件路径复制到剪切板然后粘贴出来并按下Enter键
Assert.assertTrue(driver.getPageSource().contains("上传课件成功"));//判断是否有上传课件成功提示字符串
/**
* 复制数据到剪切板并粘贴出来
* @param writeMe
* @throws java.awt.AWTException
*/
public void useSysClipboard(String writeMe) throws AWTException {
Sleeper.sleepTight(800);
Robot robot=new Robot();
Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();
clip.setContents(new StringSelection(""), null);//清空系统剪切板
Transferable tText = new StringSelection(writeMe); //将文件路径复制到系统剪切板
clip.setContents(tText, null);
robot.keyPress(KeyEvent.VK_CONTROL);//模拟按ctrl键
robot.keyPress(KeyEvent.VK_V);//模拟按v键
Sleeper.sleepTight(500);
robot.keyRelease(KeyEvent.VK_V);//模拟释放v键
robot.keyRelease(KeyEvent.VK_CONTROL);//模拟释放ctrl键
Sleeper.sleepTight(500);
robot.keyPress(KeyEvent.VK_ENTER);//模拟按Enter键
Sleeper.sleepTight(500);
}
driver.findElement(By.xpath("//ul/li[5]/div[1]/label/div/object")).click();//点击【选择】按钮
Runtime.getRuntime().exec("d:1.exe");//执行.exe文件上传课件
Assert.assertTrue(driver.getPageSource().contains("上传课件成功!"));判断是否有上传课件成功提示字符串
driver.findElement(By.id("updatePicId")).click();//点击【上传图片】按钮
this.useSysClipboard("D:\1.jpg");//通过复制粘贴方式上传图片
Assert.assertTrue(driver.getPageSource().contains("上传图片成功"));//判断是否有上传图片成功提示字符串
driver.findElement(By.xpath("//ul/li[5]/div[1]/label/div/object")).click();//点击【选择】按钮
Runtime.getRuntime().exec("d:1.exe");//执行.exe文件上传课件
Assert.assertTrue(driver.getPageSource().contains("上传课件成功!"));//判断是否有上传课件成功提示字符串



TeamCity编译执行selenium上传窗口脚本缺陷的更多相关文章
- Selenium 处理windows 上传 窗口
selenium无法控制windows窗口,故需要引用第三方工具autoit. 在如下网址,下载并安装 http://www.autoitscript.com/site/autoit/ 安装autoi ...
- Selenium上传文件方法总结
Web上本地上传图片,弹出的框Selenium是无法识别的,也就是说,selenium本身没有直接的方法去实现上传本地文件,这里总结了两种上传文件的方式. 一.利用Robot类处理文件上传. 其大致流 ...
- Linux FTP 上传一键脚本
下面来介绍一下这个 FTP 上传一键脚本 ftp_upload.sh. 用途:用于在Linux系统下搭建FTP客户端向FTP服务器端上传文件: 总结一下 ftp_upload.sh 特点:1.支持文件 ...
- 让Jenkins执行GitHub上的pipeline脚本
本文是<Jenkins流水线(pipeline)实战>系列的第二篇,上一篇搭建好了Jenkins环境并执行了一个简单的pipeline任务,当时我们直接在Jenkins网页上编写pipel ...
- mysql数据库,如何在登录mysql之后执行操作系统上的SQL脚本?
需求描述: 通过mysql客户端登录到mysql数据库,如何执行操作系统上的SQL脚本文件呢? 操作过程: 1.编写测试脚本文件 [mysql@redhat6 scripts]$ cat SeCoun ...
- windows下上传shell脚本不能运行—将dos模式修改为unix 文件格式
windows下上传shell脚本至linux,其格式将为dos.dos模式的shell脚本将不能再linux下正确运行,需要修改文件模式为unix. 1 查看文件模式方法 linux服务器上,用vi ...
- Java+Selenium 上传文件,点击选择“浏览文件”按钮,报错invalid argument
Java+Selenium 上传文件,点击选择"浏览文件"按钮,报错invalid argument 解决代码: Actions action=new Actions(driver ...
- Selenium的文件上传JAVA脚本
在写文件上传脚本的时候,遇到了很多问题,包括元素定位,以及上传操作,现在总结下来以下几点: 1. 上传的控件定位要准确,必要时要进行等待 WebElement adFileUpload = drive ...
- Selenium 上传文件失败,解决办法一
昨个改程序遇到一个问题,UI上面有需要上传文件的地方.但是我不知道怎么让Selenium完成 点击上传文件按钮->在弹出的文件选择窗口中选择路径和文件,点确定. 要知道弹出窗口属于window的 ...
随机推荐
- win下python环境搭建以及安装pip、django
1. 安装python并配置 下载安装python,这里我下载的是python2.7,听说2.7比较好用 地址:https://www.python.org/downloads/source/ 记住你 ...
- android studio 调试技巧(简直太好用)
android studio 调试技巧(简直太好用) 说到android studio的调试,很多人可能会说,这有什么可讲的不就是一个断点调试么,刚开始我也是这么认为的,直到我了解之后,才发现,调试原 ...
- (三)虚拟机与Linux新尝试——20155306白皎
(三)虚拟机与Linux新尝试--20155306白皎 一.关于虚拟机的安装 在选择虚拟机的类型和版本时,Ubuntu只有32位,没有64位 解决:通过百度,后来也发现同学们好多遇到了这个问题,因此通 ...
- 20145226夏艺华 《Java程序设计》第2周学习总结
教材学习内容总结 学习目标 了解Java编程风格 认识Java的类型与变量 掌握Java流程控制的方法(分支.循环) 教材第三章内容总结 认识类型与变量 学习运算符的基本使用 了解类型转换细节 运用基 ...
- BZOJ054_移动玩具_KEY
题目传送门 这道题我写IDA*写挂了,TLE+WA,只AC了两个点. 这道题标算BFS+状态压缩. code: /******************************************* ...
- day4 CSS属性操作
1.CSS属性 基本属性 height, 高度 百分比 width, 宽度 像素,百分比 text-align:ceter, 水平方向居中 line-height, 垂直方向根据标签高度 color. ...
- CF 1083 A. The Fair Nut and the Best Path
A. The Fair Nut and the Best Path https://codeforces.com/contest/1083/problem/A 题意: 在一棵树内找一条路径,使得从起点 ...
- 《Flutter实战》开源电子书
<Flutter实战>开源电子书 <Flutter实战> 开源了,本书为 Flutter中文网开源电子书项目,本书系统介绍了Flutter技术的各个方面,本书属于原创书籍(并非 ...
- Python小白学习之如何添加类属性和类方法,修改类私有属性
如何添加类属性和类方法,修改类私有属性 2018-10-26 11:42:24 类属性.定义类方法.类实例化.属性初始化.self参数.类的私有变量的个人学习笔记 直接上实例: class play ...
- 韦大仙--LoadRunner压力测试:详细操作流程
一. 录制脚本 1.安装完毕后,创建脚本: 点击OK之后,会弹出网址,之后创建Action,每进一个页面添加一个Action,录制结束后,终止录制. 二. 修改脚本 1.脚本参数化 将登录的用户名密码 ...