在一个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

如果没有,那还可以引用其他框架的包

1.Wait For系列与Delay:
Delay适用于定长时间的等待,比如点击添加按钮,立马弹出添加窗口,不需要与后端交互,也不用运行复杂的JS;
Wait For系列适用不定长时间的等待(后台有请求或前端有JS运行),比如当网页中按钮A显示了,才去点击;比如点了保存按钮,后台要执行一会,结果出现‘成功’字样,才继续下一步等。但实际使用中,有可能已经wait到了元素,但因为还页面还未加载完导致不可点击或不可交互,这时可以配合Delay一同使用。
具体的方法如图:

最新文章

  1. SuperMap iServer Ubuntu 开机自启动脚本
  2. Android高级之十二讲之如何降低应用内存消耗
  3. 7.Git的版本退回
  4. Linux Shell系列教程之(十四) Shell Select教程
  5. 谈谈redis主从复制的重点
  6. AngularJS 'Controller As'用法
  7. Kafka 0.10.0
  8. 全国DNS汇总
  9. 使用Windows驱动的虚拟打印机,打印Excel表格无表格线问题解决(2)
  10. 【原创】leetCodeOj --- Binary Search Tree Iterator 解题报告
  11. CCS设计手段——相对定位
  12. iOS 远程推送通知 详解
  13. iOS 关于监听手机截图,UIView生成UIImage, UIImage裁剪与压缩的总结
  14. .net基础学java系列(七)赶鸭子上架看项目代码
  15. webpack安装异常
  16. 省市区三级联动(附j全国省市区json文件)
  17. DC3求后缀数组板子
  18. git查看分支图
  19. 11 vim文本编辑器
  20. 学习knockoutjs轻量级的MVVM框架

热门文章

  1. 第五章.MyBatis高级映射
  2. .net打印
  3. C++使用按位右移/按位左移运算符
  4. 关于ligerui grid 行内编辑 combobox 只能选择的问题
  5. unittest单元测试框架之unittest案例(二)
  6. 二、HDFS 架构
  7. 哈希查找解决地址冲突的两种最常见方法(线性探测再散列,链地址法)C++实现
  8. 笔记: 对称加密算法的PKCS5 和 PKCS7 填充
  9. HTML5新标签兼容——> <!--<if lt IE 9><!endif-->
  10. PHP中如何对二维数组按某个键值进行排序