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

求助:如何用BeanShell代码实现随机抽取HTML选项值

修改BeanShell代码实现随机抽取

你的现有代码尝试用RandomUtils实现随机抽取,但如果实际运行是按顺序选取,可使用以下修正后的代码确保真正的随机抽取:

修正后的代码

import java.util.Random;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
import java.util.ArrayList;
import java.util.List;

// 获取响应数据
String responseData = prev.getResponseDataAsString();

// 匹配<option>标签,提取value属性值
Pattern pattern = Pattern.compile("<option value=\"(.+?)\">(.+?)</option>");
Matcher matcher = pattern.matcher(responseData);

// 存储提取到的城市值
List<String> cities = new ArrayList<>();
while(matcher.find()) {
    String cityValue = matcher.group(1);
    log.info("提取到城市值: " + cityValue);
    cities.add(cityValue);
}

// 随机抽取一个城市(增加非空判断避免异常)
if (!cities.isEmpty()) {
    Random random = new Random();
    String randomCity = cities.get(random.nextInt(cities.size()));
    vars.put("Depart_city", randomCity);
    log.info("随机选中的城市: " + randomCity);
} else {
    log.error("未提取到任何城市值");
}

关键调整说明

  • 给List指定泛型String,避免潜在的类型转换问题
  • 使用JDK原生的java.util.Random实现随机逻辑,稳定性更可控
  • 增加列表非空判断,防止因未提取到数据导致空指针异常
  • 简化日志输出,让调试信息更清晰直观

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 16:32:57