katalon系列六:Katalon Studio Web UI关键字讲解
在一个Test Case里,点左上Add-Web UI Keyword,可以添加一行新的命令。
像Click、setText、Delay这些最基本的,大家还是看看官方的API文档吧,望文知义,如果是纯新手,可以先学学selenium的API,有网站也有书,都是中文的。
介绍几个写用例时,逻辑中会用到的几个Keyword:
1.Wait For系列与Delay:
Delay适用于定长时间的等待,比如点击添加按钮,立马弹出添加窗口,不需要与后端交互,也不用运行复杂的JS;
Wait For系列适用不定长时间的等待(后台有请求或前端有JS运行),比如当网页中按钮A显示了,才去点击;比如点了保存按钮,后台要执行一会,结果出现‘成功’字样,才继续下一步等。但实际使用中,有可能已经wait到了元素,但因为还页面还未加载完导致不可点击或不可交互,这时可以配合Delay一同使用。
具体的方法如图:
2.Verify系列:验证条件是否满足,返回True或False;具体的方法如图
我们从API描述中可以看到,每个Verify都有最后一个可选参数flowControl,可以设置命令返回false时是否报错,例子:WebUI.waitForElementClickable(findTestObject('input__wd'), 0, FailureHandling.CONTINUE_ON_FAILURE)
flowControl共有3个选项
我们也可以通过可视化操作来设置
如果不想每条都设置,也可以在Project Setting中设置所有命令的flowControl,参考Katalon系列三有写。
另外,不管哪个方法,当我们初次使用时,如果你不太清楚参数怎么写,双击Input栏,会弹出参数窗口,系统会默认写上参数名和类型,我们只需要填值就好了,当值比较长或比较复杂的时候,也可以切换到Script模式直接填写。
3.assert断言:和所有单元框架一样,Katalon Studio也有断言语句,就是assert,当断言不通过时,Case会失败。我们可以结合findTestObject、Verify系列、Wait For系列等方法一起使用,比如:
assert WebUI.verifyElementVisible(findTestObject('Page_CrfManage/0Page_CrfModel/Page_EditCrf/lab_PCversion'))
查找lab_PCversion元素,当其可见,则断言通过
Verify系列与assert区别:Verify可以按你的设置来控制脚本是否报错停止或继续执行,assert会停止脚本。
4.条件语句:和所有语言一样,有if,if...else等,举个if的例子:
更新提示只出现一次,且出现时不能进行其他操作,我们想当有更新提示时,则关闭更新提示
if (findTestObject('Page_Login/button_WhatNewClose')) {
WebUI.click(findTestObject('Page_Login/button_WhatNewClose'))
}
5.循环语句:For 和 While及配合循环的分支语句
我们这里举个For的最简单的例子:
for (def index : (1..10)) {
println '第' + index + '次!!!!!!!!!!!!!!!!!!!'
}
在Console中我们可以看到每条命令的执行,以及print的输出
6.模拟按键
有时我们想模拟键盘操作,比如ENTER,CTRL+V等,我没有在Katalon里发现有封装,但我们可以调用selenium的Keys。
import org.openqa.selenium.Keys as Keys
WebUI.sendKeys(findTestObject('input'), Keys.chord(Keys.CONTROL + 'a'))
WebUI.sendKeys(findTestObject('su'), Keys.chord(Keys.ENTER))
记得要先引用包,具体都有哪些键可在脚本编辑时自己看
总之,其他语言、框架有的语句这里都有,多看看官方的API文档吧
https://api-docs.katalon.com/index.html
如果没有,那还可以引用其他框架的包
最新文章
- SuperMap iServer Ubuntu 开机自启动脚本
- Android高级之十二讲之如何降低应用内存消耗
- 7.Git的版本退回
- Linux Shell系列教程之(十四) Shell Select教程
- 谈谈redis主从复制的重点
- AngularJS 'Controller As'用法
- Kafka 0.10.0
- 全国DNS汇总
- 使用Windows驱动的虚拟打印机,打印Excel表格无表格线问题解决(2)
- 【原创】leetCodeOj --- Binary Search Tree Iterator 解题报告
- CCS设计手段——相对定位
- iOS 远程推送通知 详解
- iOS 关于监听手机截图,UIView生成UIImage, UIImage裁剪与压缩的总结
- .net基础学java系列(七)赶鸭子上架看项目代码
- webpack安装异常
- 省市区三级联动(附j全国省市区json文件)
- DC3求后缀数组板子
- git查看分支图
- 11 vim文本编辑器
- 学习knockoutjs轻量级的MVVM框架
热门文章
- 第五章.MyBatis高级映射
- .net打印
- C++使用按位右移/按位左移运算符
- 关于ligerui grid 行内编辑 combobox 只能选择的问题
- unittest单元测试框架之unittest案例(二)
- 二、HDFS 架构
- 哈希查找解决地址冲突的两种最常见方法(线性探测再散列,链地址法)C++实现
- 笔记: 对称加密算法的PKCS5 和 PKCS7 填充
- HTML5新标签兼容——>; <;!--<;if lt IE 9>;<;!endif-->;
- PHP中如何对二维数组按某个键值进行排序