一、简介

Katalon Recorder是基于selenium的浏览器插件,支持火狐和chrome。可以录制web上的操作并回放,还能导入导出脚本。

二、安装

可在谷歌商店或者火狐附件组件中搜索并选择添加完成安装。安装完成后,浏览器右上角会显示Katalon Recorder图标。

三、基本模块

界面功能如下,主要分为四部分:1_工具栏、2_测试用例集、3_用例编辑区、4_控制台。

  • 1_工具栏:从左至右功能分别为新增用例集、录制、播放、播放用例集、播放全部用例集、暂停、导出、控制回放速度、设置、帮助;
  • 2_测试用例集:提供打开已有用例集、新增/关闭/重命名用例集、在用例集下新增/删除/重命名测试用例;
  • 3_测试用例编辑区:录制后脚本出现在该区域或者可手动编辑。上半部分显示所有的测试用例;某一条用例,则对应显示在下半部分中;提供新增、编辑、复制、粘贴操作;
  • 4_控制台:各页签分别为日志、截屏、变量、数据驱动、拓展脚本、参考;常用日志功能,查看脚本回放是否成功。
四、XPath语法

XPath是在一种在XML文档里查找信息的语言。

XPath相关教程可参考菜鸟教程,以下引用列出较为实用的相关知识点:

=============================================引用分割线_START===================================================

XML 实例文档

<?xml version="1.0" encoding="UTF-8"?>

<bookstore>

<book>
<title lang="eng">Harry Potter</title>
<price>29.99</price>
</book> <book>
<title lang="eng">Learning XML</title>
<price>39.95</price>
</book> </bookstore>

选取节点

XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。 下面列出了最有用的路径表达式:

谓语(Predicates)

选取未知节点

选取若干路径

=============================================引用分割线_END===================================================

五、XPath定位方法

实例1_定位百度搜索框:

1、标签+属性定位:xpath = "//标签名[@属性='属性值']"

方式1:通过id属性定位。可分别用://*[@id="kw"]  或 //input[@id="kw"]                                    # *表示所有标签,input为具体标签

方式2:通过name属性定位。可分别用://*[@name="wd"] 或 //input[@name="wd"]

方式3:通过class属性定位。可分别用://*[@class="s_ipt"] 或 //input[@class="s_ipt"]

以上为最常用的3种属性定位方式,此外还有其他属性,请根据实际情况进行元素定位。

2、contains()方法定位【也称模糊定位】:xpath = "//标签名[contains(@属性, '属性值')]"

定位可用://input[contains(@id,"kw")]  或 //input[contains(@name,"wd")]  或 //input[contains(@class,"s_ipt")]      #备注:使用contains()方法模糊定位,标签名必须为具体,若替换为“*”则找不到元素,可自行验证

3、通过上级元素往下定位

定位可用://form[@id="form"]/span[contains(@class,"s_ipt_wr")]/input

4、text()方法定位:xpath = "//标签名[text()='XXX']"

实例2_定位文本内容:

定位可用://*[text()="贴吧"] 或 //a[text()="贴吧"]

(备注:此方法在数据的其他属性动态变化时非常实用。如系统新增一条单位数据,每次新增id、class属性值动态变化;为了实现业务流程闭环,删除数据时,只有单位名称固定不变,因此可用text()方法找到这条数据并实现删除操作。)

六、Katalon Recorder实例相关命令详解

本节中的实例,旨在熟悉XPath的几种定位方法,并学习Katalon Recorder中相关命令的使用。

实例业务流:打开登录页面-->输入账号密码点击登录-->打开[单位管理]页面点击新增-->新增页面填写信息并保存-->对新增的单位数据进行删除。

附上实例相关用例截图:

截图中用到相关命令详解看下图,更多命令详解请查看其他博文

重点说明pause、selectFrame这两个命令:

  • pause:增加暂停。在一些数据交互较多的场景中,比如加载订单、搜索等场景,需加载完数据才能进行下一步时,增加暂停时间可使脚本更稳定。时长建议从500毫秒到1500毫秒不等,单位是毫秒。
  • selectFrame:在当前窗体中选择一个框架。当页面存在多个框架时,要定位某个框架中的元素,需先选择这个框架。可使用selectFrame来实现。

比如要定位这个“单位名称”元素,它在一个frame里,因此需要先选择这个元素所在的frame,才能定位到这个元素:

选择框架(定位器)有几种形式:

  • 选择父框架:relative=parent
  • 选择顶级框架:relative=top
  • 索引方式。通过基于0的索引号选择框架,“index=0”表示选择第一个框架,“index=2”表示选择第三个框架,以此类推...
  • 退出当前框架:relative=up

=============================================

选择使用索引方式时,可通过浏览器控制台选择Elements页签,按Ctrl+F打开搜索栏进行搜索“iframe”,按Enter进行切换查看每一个iframe,可查看对应的iframe为第几个框架便可得出索引。

(备注:selectFrame是在同一个页面选择,selectWindow是在不同的页面之间选择。selectWindow命令后续用到再进行加更!)

KatalonRecorder系列(一):基本使用+XPath元素定位的更多相关文章

  1. css选择器用法,使用css定位元素,css和xpath元素定位的区别

    css定位元素 1.什么是css? CSS(Cascading Style Sheets)层叠样式表,是一种语言,用来描述html或者xml的显示样式.在css语言中有css选择器,在selenium ...

  2. Selenium+Java(四)Selenium Xpath元素定位

    前言 关于Selenium元素定位,这是最后一篇博客. Xpath定位可以实现的功能 Selenium+Java(三)Selenium元素定位中讲的定位方式也可以实现,具体要用那种定位方式要根据自己的 ...

  3. python中通过selenium简单操作及xpath元素定位&轴定位

    浏览器的简单操作 # 导入webdriver模块 # 创建driver对象,指定Chrome浏览器 driver = webdriver.Chrome() # 窗口最大化 driver.maximiz ...

  4. xpath元素定位方法

    XPath 使用路径表达式来选取 XML 文档中的节点或者节点集.这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似.XPath 含有超过 100 个内建的函数.这些函数用于字符串值.数值 ...

  5. webdriervAPI(XPath元素定位)

    from  selenium  import  webdriver driver  =  webdriver.Chorme() driver.get("http://www.baidu.co ...

  6. appium xpath元素定位

    1.id定位 写法:driver.find_element_by_id("这里是resource-id") 2.name定位 name定位就是通过UI Automator工具查看的 ...

  7. xpath元素定位语法

    举个栗子 -------------------------------------------------------------------------------------- <?xml ...

  8. Python自动化中的元素定位xpath(二)

    1.Xpath元素定位 1)ele = b.find_element_by_xpath(‘/html/body/from/input[1]’) 2)Ele = b.find_element_by_xp ...

  9. 用XPath精确定位节点元素&selenium使用Xpath定位之完整篇

    在利用XSL进行转换的过程中,匹配的概念非常重要.在模板声明语句 xsl:template match = ""和模板应用语句xsl:apply-templates select ...

随机推荐

  1. 技术管理进阶——技术Leader需要数据思维

    原创不易,求分享.求一键三连 假设我长得很漂亮,拥有众多追求者,但是初出闺房的我对这世界上的男人毫无认知,那么该如何选择呢?这真是一个问题! 妈妈说,愿意为我花钱的男人未必爱我,但不愿意为我花钱的男人 ...

  2. manim

    from manim import * #导入manim命名空间 #这是一个最基本的manim结构,类名叫做BaseFrame,传入一个场景Scene,并且包含一个construct方法,传入self ...

  3. 【Matlab】学习记录1-简单的函数介绍

    sind(30) %正弦函数,以角度为单位  ans =0.5000 exp(2) %以e为底的指数函数,即e^x   ans =7.3891 log10(10)  ans =1log(exp(1)) ...

  4. 荣获 Neo4j Certified Professional

    在学习 Neo4j 的过程中,偶然得知官方的认证考试,所以当时就决定通过这项考试,功夫不负有心人,我成功的拿到了Neo4j Certified Professional认证证书 关于认证途径,请访问链 ...

  5. FusionCopmpute之CNA,VRM虚拟机安装

    CNA和VRM安装步骤一样,需要修改的只有IP 按步骤创建 修改自己虚拟机想要存放的位置 需要把自己网络同样配置为仅主机(提前配好) 自己也可以修改至200G 虚拟机只是用多少取多少 CNA可以设置为 ...

  6. Docker实用篇

    Docker实用篇 0.学习目标 1.初识Docker 1.1.什么是Docker 微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦. 分布式系统中,依赖的组件非常多,不同组件之间 ...

  7. Job And Schedule (V8R6C4)

    KingbaseES 数据库提供了 kdb_schedule 扩展,使得用户能通过类似oracle job 的方式进行job调用.kdb_schedule 提供了三个Schema :dbms_job ...

  8. [DOM]获取元素:根据ID、标签名、HTML5新增的方法、特殊元素获取

    目录 [DOM]获取元素:根据ID.标签名.HTML5新增的方法.特殊元素获取 1.根据 ID 获取[.getElementById( )] 2.根据标签名获取[.getElementsByTagNa ...

  9. k8s驱逐篇(4)-kube-scheduler抢占调度驱逐

    介绍kube-scheduler抢占调度驱逐之前,先简单的介绍下kube-scheduler组件: kube-scheduler简介 kube-scheduler组件是kubernetes中的核心组件 ...

  10. Nginx服务器性能优化与安全配置实践指南

    转载自:https://www.bilibili.com/read/cv16151784?spm_id_from=333.999.0.0 1.引言 1.1 目的 为了更好的指导部署与测试艺术升系统ng ...