Selenium2library在我们实际测试web页面的时候基本上已经够用了,不过还是会有部分情况下会脱离Selenium2library的控制,无法进行操作。比如说下载文件的时候,要选择保存文件在什么地方,比如说上传文件的时候,要选择上传哪个文件,这些在Selenium2library下都没有很好的处理办法。但是结合上AutoItLibrary,就可以很好的来进行处理了。结合AutoItLibrary的内容分2篇,本篇介绍AutoItLibrary安装使用和对话框处理,下篇介绍上传下载。
  下载解压缩后直接用ride打开里面的tests看代码或者运行案例即可。
  1、AutoItLibrary安装
  简单说下安装,把下面2个下载了,先安装pywin32,然后再安装AutoItLibrary,解压缩进入相应目录执行python setup.py install
  pywin32-217.win32-py2.7.exe(我之前下载的217,最新的好像是218,版本较多,请注意py版本)
  AutoItLibrary-1.1.tar.gz(必须先安装上面的pywin32,并且Python的安装目录不能有空格,如果有空格会导致注册autoit的dll时出错。版本一直是1.1)
  64位的机器:除了安装上面2个之外,还不得不再安装一个AutoItV3。一般情况下装完这个就能用了。
  2、AutoItLibrary对象识别
  当成功安装AutoItLibrary之后,在你的硬盘某个盘根目录会多一个Robotframework的目录,具体哪个盘取决于你的User目录在哪个盘,例如我的是在D盘,因此多出来的这个目录就在如下路径:
  D:\RobotFramework\Extensions\AutoItLibrary
  这里是一些辅助工具,比如AutoItX.chm是帮助文档,AutoItLibrary.html是测试库的关键字文档说明,Au3Info.exe是最重要的识别对象的工具了。
  在Finder Tool的位置有个十字星,可以用鼠标拖动他到你需要识别的对象上,就像下图这样:
  AutoItLibrary的对象操作大体上有几大主要部分,Window操作、Control操作、Mouse操作、Process操作、Run操作、Reg操作还有一些其他的操作。
  其中前三个操作我比较常用,Window和Control应该比较好理解吧,你看到的窗口就是Window,窗口上的按钮、文本框等就是Control。所以在通常要去操作Control时,一般需要先激活窗口,再操作控件。
  AutoItLibrary的鼠标操作要用到真实坐标,这和Selenium2Library里的坐标略有差异,下篇会有例子。
  回到上图,可以看到最重要识别出来的属性,分两块,在左侧上半部分,Basic Window Info和Basic Control Info。
  经过我多次的使用,Window方面识别用Title比较多,Control主要用controlID,controlID就是在Basic Control Info里的Class+Instance,比如说图中这个对象,他的controlID就是Edit1,关键字里的strControl就是controlID(chm里都是写的controlID)。
  AutoItLibrary的关键字我就不一一介绍了,大家可以看Chm帮助或者html的关键字文档,不过chm是原生AutoIt的文档,对于理解关键字的作用比较有帮助。关键字文档只是列出来所有的关键字和参数,基本很少有说明。
  3、web对话框
  a、你肯定见过这种对话框,前一个是只有确定的,还有确定取消2个按钮的。
  b、你应该也见过这种对话框
  c、还有那种在网页上弹出的要输入用户密码的登录框,我这里没有找到例子,也木有截图。(找到截图,见最底下)
  以上这些都可以用AutoItLibrary来处理。
  对于a来说,Selenium2Library中的confirm action就可以处理了。
  对于b、c来说,都要用AutoItLibrary处理更好一些,因为那些文本框的输入已经脱离了Selenium2Library的控制了。
  先来看a这种对话框在Selenium2Library的处理,脚本如下:

 其中最主要用到的就是confirm action,顺便普及下相关的关键字
  Choose Cancel On Next Confirmation
  Choose Ok On Next Confirmation
  这2个关键字其实特别针对的是a里第二个那种,从字面意思可以理解,选择OK或者Cancel在下一次Confirmation,请注意是下一次Confirmation,也就是你必须还要使用Confirmation才行,而不是用了这个就等于选择OK或者Cancel了,具体可看脚本里的使用。
  再看看AutoItLibrary里的处理,脚本如下:
  我做了个关闭对话框的关键字,方便重复调用。这个关键字实现的功能我基本上参考了confirmation,除了点击按钮,还会把提示信息返回,不过我没做choose cancel的部分。具体关键字的脚本如下:
  我的demo页面上面表格里有3个按钮,付款、确认、输入。付款和确认就是a那种类型的,输入是b那种类型的。
  我的脚本只做了a类型的处理,其他类型的请大家当作练习做吧。
  如果其他类型的不会做,可以参考下一篇的内容吧。
  找到c类型的截图了,IE里弹出这种窗口的时候,也可以用AutoItLibrary处理,有类似情况的可以自己练习下。

RFS+AutoItLibrary测试Web对话框的更多相关文章

  1. Robot Framework--12 RFS+AutoItLibrary测试web对话框

    转自:http://blog.csdn.net/tulituqi/article/details/21871247 Selenium2library在我们实际测试web页面的时候基本上已经够用了,不过 ...

  2. Robot Framework--13 RFS+AutoItLibrary测试web上传下载

    转自:http://blog.csdn.net/tulituqi/article/details/21888059 Selenium2library在我们实际测试web页面的时候基本上已经够用了,不过 ...

  3. 利用SoapUI 测试web service的方法介绍

    1. 简介 SoapUI是用java开发的测试web service的工具. 2. 安装 2.1. 下载地址 http://www.soapui.org/ 2.2. 安装 By downloading ...

  4. 使用QTP测试Web对象

    加载Web插件先启动QTP,再启动浏览器,否则Web元素识别不了最新版本QTP11支持的浏览器:IE:6.7.8Firefox:3.0.x.3.5.QTP支持直接访问DOM(Document Obje ...

  5. 使用SoapUI 测试Web Service

    原文:使用SoapUI 测试Web Service 如何测试写好的Webservice?你当然可以写代码来测试,但还是太麻烦,你得花时间去学习各语言的关于Webservice调用的相关API.这里推荐 ...

  6. 利用python httplib模块 发送Post请求测试web服务是否正常起来!

    最近在学习python,恰好老大最近让我搞个基于post请求测试web服务是否正常启用的小监控,上网查了下资料,发现强大的Python恰好能够用上,所以自己现学现卖,顺便锻炼下自己. 由于本人也刚接触 ...

  7. macaca 测试web(3)

    上回书说到 macaca 测试web(2)  使用ddt做参数驱动化, 有些人会说,你好low,我说怎么low呢,他说你看看你的脚本就放在一个文件里,对于我们小白来说,这看起来很乱啊,能不能给我拆分, ...

  8. 用SoapUI 测试Web Service

    如何测试写好的Webservice? 方法一:写代码来测试,但还是太麻烦,你得花时间去学习各语言的关于Webservice调用的相关API. 方法二:使用Webservice开发的必备工具- Soap ...

  9. 利用SoapUI 测试web service的一些问题总结

    总结两个利用SoapUI 测试web service的一些问题: 1.请求一个soap service 请求的时候:按照下面的配置输入请求地址后, 2.根据实际service接口的需要,传入相应的参数 ...

随机推荐

  1. linux删除大量文件

    1.建立一个空目录 mkdir -p /tmp/rsync_blank 2.确立需要清空的目标目录 /data/web/vip/htdocs/tuan 3.使用rsync同步删除(注意目录后面的“/” ...

  2. Codeforces Round #316 (Div. 2) A 水

    A. Elections time limit per test 1 second memory limit per test 256 megabytes input standard input o ...

  3. 利用$.getJSON() 跨域请求操作

    原文发布时间为:2011-01-14 -- 来源于本人的百度文章 [由搬家工具导入] $.get 没有权限? $.post 没有权限? 因为他们都不能跨域,那就用 $.getJSON() 吧 利用$. ...

  4. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---41

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  5. 最简单方法远程调试Python多进程子程序

    Python 2.6新增的multiprocessing,即多进程,给子进程代码调试有点困难,比如python自带的pdb如果直接在子进程代码里面启动会抛出一堆异常,原因是子进程的stdin/out/ ...

  6. 小型web项目的模块化(转)

    背景   目前团队中新的 Web 项目基本都采用了 Vue 或 React ,加上 RN,这些都属于比较重量级的框架,然而对于小型 Web 页面,又显得过大.早期的一些项目则使用了较原始的 HTML ...

  7. Python 复习-1

    #!/usr/bin/env python # -*- coding:utf-8 -*- # @Time : 2017/10/27 22:46 # @Author : lijunjiang # @Fi ...

  8. 【转载】SQL Server 2008 R2 使用的端口解析

    转载博客:http://www.cnblogs.com/studyzy/archive/2009/11/30/1614139.html SQL Server在安装到服务器上后,出于服务器安全的需要,所 ...

  9. 洛谷——P2626 斐波那契数列(升级版)

    P2626 斐波那契数列(升级版) 题目背景 大家都知道,斐波那契数列是满足如下性质的一个数列: • f(1) = 1 • f(2) = 1 • f(n) = f(n-1) + f(n-2) (n ≥ ...

  10. Loj #124. 除数函数求和

    链接:https://loj.ac/problem/124 就是筛一下积性函数. #include<bits/stdc++.h> #define ll long long #define ...