You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 15:09:02