当前位置:网站首页>Katalon框架测试一个web页面操作实例代码
Katalon框架测试一个web页面操作实例代码
2022-06-28 10:19:00 【春天的菠菜】
页面操作元素就没有发出来,这里主要是为自己学习当中做经验沉淀
目录
一、源码
import static com.kms.katalon.core.checkpoint.CheckpointFactory.findCheckpoint
import static com.kms.katalon.core.testcase.TestCaseFactory.findTestCase
import static com.kms.katalon.core.testdata.TestDataFactory.findTestData
import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject
import static com.kms.katalon.core.testobject.ObjectRepository.findWindowsObject
import com.kms.katalon.core.checkpoint.Checkpoint as Checkpoint
import com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords as CucumberKW
import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as Mobile
import com.kms.katalon.core.model.FailureHandling as FailureHandling
import com.kms.katalon.core.testcase.TestCase as TestCase
import com.kms.katalon.core.testdata.TestData as TestData
import com.kms.katalon.core.testng.keyword.TestNGBuiltinKeywords as TestNGKW
import com.kms.katalon.core.testobject.TestObject as TestObject
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
import com.kms.katalon.core.windows.keyword.WindowsBuiltinKeywords as Windows
import internal.GlobalVariable as GlobalVariable
import org.openqa.selenium.Keys as Keys
import com.kms.katalon.core.annotation.Keyword as Keyword
import org.openqa.selenium.WebElement as WebElement
WebUI.openBrowser('')
'这里使用了全局变量'
WebUI.navigateToUrl(GlobalVariable.url)
'最大化'
WebUI.maximizeWindow()
'输入账号,这里使用了全局变量'
WebUI.setText(findTestObject('Object Repository/login/input_username'), GlobalVariable.username)
'输入密码,这里使用了局部变量'
WebUI.setText(findTestObject('login/input_password'), password)
'点击登录按钮'
WebUI.click(findTestObject('Object Repository/login/button_login'))
WebUI.click(findTestObject('Object Repository/maintain/deptmanger/img_select_meter_system'))
WebUI.delay(2)
WebUI.getText(findTestObject('meter/home/span_meter_home_text'))
WebUI.verifyElementText(findTestObject('meter/home/span_meter_home_text'), '监控')
WebUI.mouseOver(findTestObject('maintain/deptmanger/link_system_menu'), FailureHandling.STOP_ON_FAILURE)
WebUI.click(findTestObject('maintain/deptmanger/link_chang_menu_level_maintain'))
WebUI.click(findTestObject('maintain/deptmanger/button_add_dept'))
WebUI.setText(findTestObject('maintain/deptmanger/input__add_dept_page_name'), '部门')
'保存'
WebUI.click(findTestObject('maintain/deptmanger/button_add_dept_page_save'))
WebUI.verifyElementText(findTestObject('maintain/deptmanger/span_msg'), '添加成功')
WebUI.delay(2)
'定义一个对象类'
WebElement element = WebUI.findWebElement(findTestObject('maintain/deptmanger/span_tree_add_dept'), 30)
WebUI.executeJavaScript('arguments[0].click();', Arrays.asList(element))
'点击修改按钮'
WebUI.click(findTestObject('maintain/deptmanger/button_alter_dept'))
WebUI.setText(findTestObject('maintain/deptmanger/input_dept_principal'), 'superman')
WebUI.click(findTestObject('maintain/deptmanger/button_alter_dept'))
WebUI.verifyElementText(findTestObject('maintain/deptmanger/span_msg'), '修改成功')
WebUI.click(findTestObject('maintain/deptmanger/button_delete_dept'))
WebUI.delay(3)
WebUI.click(findTestObject('maintain/deptmanger/button_confirm'))
WebUI.verifyElementText(findTestObject('maintain/deptmanger/span_msg'), '删除成功')
WebUI.closeBrowser()
二、重点说明
1、使用JS操作页面点击不到的元素
引用
import org.openqa.selenium.WebElement as WebElement主要为了,原因是点击不到元素对象,适应JS去点击
'定义一个对象类(查找新增的部门,在树上的位置)'
WebElement element = WebUI.findWebElement(findTestObject('maintain/deptmanger/span_tree_add_dept'), 30)
'选中新增的树上的部门'
WebUI.executeJavaScript('arguments[0].click();', Arrays.asList(element))2、鼠标悬停
'鼠标移动到计量管控系统的系统切换icon位置'
WebUI.mouseOver(findTestObject('maintain/deptmanger/link_system_menu'), FailureHandling.STOP_ON_FAILURE)边栏推荐
- 第三章 栈和队列
- 接口自动化框架脚手架-参数化工具的实现
- 错过金三银四,找工作4个月,面试15家,终于拿到3个offer,定级P7+
- 第六天 脚本与动画系统
- Chapter 3 stack and queue
- [Unity]EBUSY: resource busy or locked
- fastposter v2.8.4 发布 电商海报生成器
- 【OpenCV 例程200篇】213. 绘制圆形
- What is the difference between MySQL development environment and test environment??
- Caffeine cache, the king of cache, has stronger performance than guava
猜你喜欢
![[Unity][ECS]学习笔记(一)](/img/eb/1f0ad817bbc441fd8c14d046b82dd0.png)
[Unity][ECS]学习笔记(一)

我大抵是卷上瘾了,横竖睡不着!竟让一个Bug,搞我两次!

理想中的接口自动化项目

Fastposter v2.8.4 release e-commerce poster generator

为什么 Istio 要使用 SPIRE 做身份认证?

一款自动生成单元测试的 IDEA 插件,开发效率提升 70% 以上!

Unity AssetBundle asset packaging and asset loading

BLE蓝牙模块NRF518/NRF281/NRF528/NRF284芯片方案对比
![[unity][ecs] learning notes (II)](/img/72/d3e46a820796a48b458cd2d0a18f8f.png)
[unity][ecs] learning notes (II)

Interface automation framework scaffold - use reflection mechanism to realize the unified initiator of the interface
随机推荐
Fastposter v2.8.4 release e-commerce poster generator
How to view the web password saved by Google browser
Ffmpeg audio and video recording
Realization of a springboard machine
爬虫小操作
【力扣——动态规划】整理题目1:基础题目:509、70、746、62、63、343、96(附链接、题目描述、解题方法及代码)
etf持仓如何影响现货金价?
Understand 12 convolution methods (including 1x1 convolution, transpose convolution and deep separable convolution)
Discard Tkinter! Simple configuration to quickly generate cool GUI!
ICMP协议的作用,Ping of Death攻击的原理是什么?
Google开源依赖注入框架-Guice指南
一款自动生成单元测试的 IDEA 插件,开发效率提升 70% 以上!
Django database operation and problem solving
Ribbon core source code analysis
[Unity][ECS]学习笔记(二)
如图 用sql行转列 图一原表,图二希望转换后
最小栈<难度系数>
物联网无线通信应用中6种融合定位技术
An error is reported when uninstalling Oracle
2D code generator for openharmony application development