如何在Katalon Studio中编写并调用实现下拉框选择功能的自定义函数
在Katalon Studio中实现下拉框自定义选择功能
Katalon Studio底层基于Selenium封装,你提供的Selenium逻辑可以直接适配迁移,推荐用自定义关键字的方式实现,和原Selenium的页面对象封装逻辑一致,复用性更高。
步骤1:创建自定义关键字类
在Katalon的Keywords目录下新建类(比如CustomDropdownKeywords),写入以下代码:
import org.openqa.selenium.WebElement import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI class CustomDropdownKeywords { /** * 匹配并点击下拉框选项 * @param optionXpath 下拉选项的xpath定位表达式 * @param targetValue 要匹配的选项文本关键词 * @param waitTime 选项加载等待时间(单位:秒) */ public void selectDropdown(String optionXpath, String targetValue, int waitTime = 2) { // 获取所有下拉选项元素列表 List<WebElement> optionList = WebUI.findWebElements(optionXpath, waitTime) // 遍历匹配选项 for (WebElement option : optionList) { String optionText = option.getText().trim() if (optionText.contains(targetValue)) { option.click() break } WebUI.delay(0.5) } WebUI.delay(0.5) } // 针对模板下拉框的封装方法,和你原Selenium的selectTemplateField逻辑对应 public void selectTemplateField(String targetTemplate) { // 模板下拉选项的xpath,和你原Selenium的@FindBy定位一致 String templateOptionXpath = "/html/body/div[14]/div/ul/li" // 先点击下拉框触发展开(注意替换为你实际的下拉框触发元素的定位或测试对象) WebUI.click(findTestObject('Page_ResourceSchedule/btn_templateDropdownTrigger')) // 调用通用选择方法 selectDropdown(templateOptionXpath, targetTemplate) } }
注:如果习惯用Katalon的测试对象管理,也可以把xpath存为测试对象,替换上述代码里的xpath字符串参数即可。
步骤2:测试用例中调用
在测试用例脚本里直接调用封装好的关键字即可,代码如下:
import com.kms.katalon.core.util.KeywordUtil // 初始化自定义关键字实例 def dropdownKeywords = new CustomDropdownKeywords() // 选择Template3选项 dropdownKeywords.selectTemplateField("Template3") // 打印日志 KeywordUtil.logInfo("Template dropdown data is selected") WebUI.delay(0.5)
注意事项
- 必须先点击下拉框的触发元素让选项展开,再执行选项匹配逻辑,否则隐藏的选项无法被定位获取
- 硬等待
delay可以替换为WebUI.waitForElementVisible等内置等待方法,提升脚本稳定性 - 如果你要操作的是原生
<select>标签的下拉框,可以直接使用Katalon内置的WebUI.selectOptionByLabel、WebUI.selectOptionByValue等现成关键字,无需自定义实现
内容的提问来源于stack exchange,提问作者enthusiasticCoder
相关产品推荐
相关产品推荐

