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

C# Selenium如何按顺序选取姓名列表值发送至文本框避免重复

实现按顺序选取姓名的C#代码方案
  • 新增一个类级别的索引变量,记录当前已经用到第几个姓名,避免每次调用方法时索引重置
  • 每次调用时读取当前索引对应的姓名,之后索引自增
  • 可以根据业务需求增加索引越界的处理逻辑(比如循环从头开始、或者提示姓名已全部用完)

首先在你的Selenium操作类的成员位置定义索引变量,不要放在方法内部:

private int _currentNameIndex = 0;

替换原有随机选取逻辑的代码如下:

// 分割文本框中的姓名列表
var names = question1.Text.Split();

// 防止索引越界的判断,可根据业务调整
if (_currentNameIndex >= names.Length)
{
    // 可选逻辑1:全部姓名用完后重置索引,从头开始循环
    _currentNameIndex = 0;
    // 可选逻辑2:抛出提示/终止操作
    // throw new InvalidOperationException("预设姓名已全部使用完毕");
}

// 按顺序取当前索引对应的姓名
string currentName = names[_currentNameIndex];
// 索引自增,下次取下一个
_currentNameIndex++;

// 后续Selenium发送按键的逻辑不变
// 示例:textBoxElement.SendKeys(currentName);

原来的随机选取逻辑重复是因为生日悖论效应:从100个不重复元素中随机取值,当取到40次左右时出现重复的概率就已经超过90%,完全符合你遇到的25-50次就重复的现象。换成固定顺序遍历的方案可以完全避免重复问题,直到所有姓名都用完为止。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 02:54:04