引言:什么是RFS——RobotFramework+Selenium2library,本系列主要介绍web自动化验收测试方面。

( @齐涛-道长 新浪微博)

我搞了个RobotFramework自动化测试公众号

欢迎大家扫一下加入。

这里有最新的安装指南,本文里的版本都比较旧了。

Selenium2library在我们实际测试web页面的时候基本上已经够用了,不过还是会有部分情况下会脱离Selenium2library的控制,无法进行操作。比如说下载文件的时候,要选择保存文件在什么地方,比如说上传文件的时候,要选择上传哪个文件,这些在Selenium2library下都没有很好的处理办法。但是结合上AutoItLibrary,就可以很好的来进行处理了。结合AutoItLibrary的内容分2篇,前一篇介绍AutoItLibrary安装使用和对话框处理,本篇介绍上传下载。

两篇的具体demo和testcase我都打包在一起了,请在这里下载,http://download.csdn.net/detail/tulituqi/7570453

下载解压缩后直接用ride打开里面的tests看代码或者运行案例即可。

1、测试上传

a、标准控件上传。

例如下面这种上传控件,如果是人工操作,用鼠标点击浏览来选择文件即可。

在Selenium2Library里面提供了处理这种控件的关键字,那就是choose file。

case脚本如下:

用这个关键字,就会直接把文件路径下载浏览前面的文本框里的。

我这里只是例子,正常应该另外会有个上传按钮去点击进行真正的上传(以下皆同)。

b、非标准控件上传。

例如下面这种只有一个按钮的,CSDN博客上传图片的选择文件按钮也是这种。

只能点击按钮在弹出的框里选择文件的,这时候就可以用上AutoItLibrary了。

由于我的demo页面这个按钮的例子是在网上找的,在具体实现点击按钮的时候发现怎么都没法弹出来选择文件框,无奈之下用上了我的笨法子来实现点击按钮,代码比较多,不过有效果。

PS:这个方法对于那种flash按钮的点击也可能有效。

说一下点击按钮的思路:

1)先通过Selenium2Library获取对象的坐标

2)再通过AutoItLibrary获取IE页面的坐标

3)再通过AutoItLibrary获取IE窗口的真实坐标

4)通过计算得到要点击按钮的真实坐标

5)通过AutoItLibrary点击指定坐标的鼠标左键

上述思路的脚本就是从第3行到第16行,如下图

弹出了选择加载文件的框之后,就可以具体操作了,也就是17行到21行的处理。前一篇不会处理文本框的可以看看这里第19行的写法。

2、测试下载

点击页面的下载测试,会弹出这样的文件下载提示框,想必大家也经常遇到(下图)。我们先看看手工操作是怎么做的。

a、点击页面下载测试链接,弹出下面的页面点击保存

b、点击保存后弹出另存为的框,可以自己选择目录,或者在文件名那里输入路径来保存。

因为我做的是一个固定了路径的,每次下载都是到demo目录下的同名文件,因此会出现存在同名文件的确认。

如果不想出现这个,就要想办法在保存文件的命名上使得文件名每次都不同,否则就要考虑这种流程的处理。

c、保存同名文件的确认另存为处理

好了下面就是具体实现的案例脚本了。

其中a的脚本是第3行到第7行,b的脚本是第9行到第12行,c的脚本是第14行到第16行。

中间加了很多sleep的等待,实在是AutoItLibrary脚本执行速度太快,为了保证demo的成功率,我临时加上了,大家可以试试其他方案不用sleep的,作为本篇的练习吧。

好了,这两篇介绍Selenium2Library结合AutoItLibrary的文章就写完了,AutoItLibrary里还有很多其他的关键字,大家可以自己根据需要去使用,我就不具体一一介绍了。

本身AutoItLibrary是可以作为C/S架构的程序自动化测试来使用的,官方的计算器的例子就是这样的。只不过他只适用于标准win32的控件,非标准win32的控件基本上不适合用AutoItLibrary了。如何知道是否标准win32控件,就用Au3Info.exe去识别一下对象,只要control下面的class出现是正常的英文名都可以来识别,比如Edit/Button之类。

上次写了文章之后过了好久才写新的内容,让大家久等了,以后尽量保证能快速推出新的内容介绍。

下一篇预告,大概会是DatabaseLibrary的使用介绍,敬请期待~

RFS的web自动化验收测试——第17讲 RFS+AutoItLibrary测试web上传下载相关推荐

  1. RFS的web自动化验收测试——第16讲 RFS+AutoItLibrary测试web对话框

    引言:什么是RFS--RobotFramework+Selenium2library,本系列主要介绍web自动化验收测试方面. ( @齐涛-道长 新浪微博) 我搞了个RobotFramework自动化 ...

  2. RFS的web自动化验收测试——第12讲 List Variables-List变量及其用法

    引言:什么是RFS--RobotFramework+Selenium2library,本系列主要介绍web自动化验收测试方面. ( @齐涛-道长 新浪微博) 这一讲我们重点来介绍List Variab ...

  3. RFS的web自动化验收测试——第5讲 工作区Run

    引言:什么是RFS--RobotFramework+Selenium2library,本系列主要介绍web自动化验收测试方面. ( @齐涛-道长 新浪微博) 这一讲主要说一下工作区的Run页面,这里可 ...

  4. RFS的web自动化验收测试——第8讲 继续未完的数据分离

    引言:什么是RFS--RobotFramework+Selenium2library,本系列主要介绍web自动化验收测试方面. ( @齐涛-道长 新浪微博) 我搞了个RobotFramework自动化 ...

  5. RFS的web自动化验收测试——更新篇(安装指南)——首次使用RF请先读我

    引言:什么是RFS--RobotFramework+selenium2library,本系列主要介绍web自动化验收测试方面. (PS:标题太长了,以后都短一些)(@齐涛-道长 新浪微博) 我搞了个R ...

  6. RFS的web自动化验收测试——Selenium2Library升级指南(补充一个问题)

    引言:什么是RFS--RobotFramework+Selenium2library,本系列主要介绍web自动化验收测试方面. ( @齐涛-道长 新浪微博) 我搞了个RobotFramework自动化 ...

  7. SpringMVC整合fastdfs-client-java实现web文件上传下载

    为什么80%的码农都做不了架构师?>>>    版权声明:本文为博主原创文章,转载请标明出处(http://blog.csdn.net/wlwlwlwl015)Thanks. 目录( ...

  8. ftpclient读取服务器文件能获得文件名文件大小0_Spring WEB工程整合使用FTP,ftp文本文件解析入库,文件上传下载

    友情提示:文章比较长,方法都是有一层层封装的,阅读需要按照文章顺序阅读 首先写一个简单的FTP工具类,先实现最基本的文件上传,下载,删除,拷贝功能.这里操作FTP是用的commons-net-3.3. ...

  9. WEB版一次选择多个文件进行批量上传(Plupload)的解决方案

    说明:Plupload支持多种浏览器,多种上传方式! 一般的WEB方式文件上传只能使用FileUpload控件进行一个文件一个文件的进行上传,就算是批量上传,也要把文件一个一个的添加到页面,无法如 w ...

最新文章

  1. vscode用鼠标滚轮_「鼠标」垂直鼠标体验之三 麦塔奇Rockstick2摇杆鼠标
  2. 基于redis的分布式锁解析
  3. grep 打印出过滤字段及后3行内容
  4. Windows消息:WM_USER与WM_APP的区别
  5. 腾讯html5平台,腾讯浏览服务
  6. CountDownLatch.countDown
  7. 最大子段和问题——详解(C++)
  8. winform中鼠标放上去显示气泡提示信息
  9. shell脚本分析 nginx日志访问次数最多及最耗时的页面(慢查询)
  10. 使用Maven下载jar包
  11. linux麒麟安装教程,优麒麟使用教程第四期:Linux平台U盘启动盘制作
  12. java基础代码-实现键盘输入
  13. 商品库存的扣除过程中如何防止超卖?
  14. exchange创建邮箱组_Exchange批量创建用户组及启用通讯组邮箱
  15. 中山大学3D游戏设计读书笔记 unity3D Note2
  16. 汽车Vin码识别系统,就用OCR识别技术
  17. 解决D3.zoom()缩放和平移初始化时图形位置会跳跃的问题(v6版本)
  18. Application.mk Android.mk
  19. 从头到脚说单测——谈有效的单元测试(下篇)
  20. CALIPSO数据下载方法与可视化

热门文章

  1. DAY68_recode edit skill in WPS
  2. AVC 报错问题示例以及解决方案
  3. mybatis WARN No appenders could be found for logger的解决方法
  4. 多款智能骑行终端齐登场,移远通信闪亮第31届中国国际自行车展览会
  5. 产品创新是最好的品牌传播
  6. UE4 只狼抓钩学习(上)
  7. 替换npm仓库地址为淘宝镜像地址
  8. 我的第一篇博客-记录我此刻的心情以及开通CSDN博客的感受
  9. mysql函数IFNULL使用的注意事项(必看!!)
  10. 模拟手柄 云台控制 方向盘