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

如何在Karate框架中从HTML多选下拉框选择多个值

在Karate框架中实现HTML多选下拉框的批量选择

针对带有multiple属性的HTML多选下拉框,Karate框架提供了两种可靠的实现方式:

方法一:使用原生select命令(推荐)

Karate的select命令原生支持多选下拉框,无需模拟键盘/鼠标操作,直接传入多个选项的value或文本即可完成批量选择,是最简洁高效的方式。

你的目标HTML结构:

<select name="allowed_skills_select" id="id_allowed_skills_select" multiple="">
  <option value="290" selected="">Skill1</option>
  <option value="289">Skill2</option>
  <option value="288">Skill3</option>
</select>

按选项value选择

* select('#id_allowed_skills_select', ['290', '289', '288'])

按选项文本选择

* select('#id_allowed_skills_select', ['Skill1', 'Skill2', 'Skill3'])

方法二:模拟手动Ctrl+点击操作

如果需要完全模拟用户手动按住Ctrl逐个点击的操作,需要确保持续按住Ctrl键,再逐个点击每个选项,最后松开Ctrl键:

// 按住Ctrl键
* karate.key('down', 'ctrl')
// 逐个点击所有选项
* karate.mouse('click', { selector: '//select[@id="id_allowed_skills_select"]/option[@value="290"]' })
* karate.mouse('click', { selector: '//select[@id="id_allowed_skills_select"]/option[@value="289"]' })
* karate.mouse('click', { selector: '//select[@id="id_allowed_skills_select"]/option[@value="288"]' })
// 松开Ctrl键
* karate.key('up', 'ctrl')

说明

你之前尝试的代码问题在于:要么没有持续按住Ctrl键,要么仅执行了单次点击,没有对每个选项进行逐一操作,导致无法完成多选。

内容的提问来源于stack exchange,提问作者Ash Desh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 10:55:19