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

如何用Selenium从表单第二行填充且不遗漏DataGridView数据?

解决方案

问题出在表单ID的拼接逻辑上:你当前把固定前缀"dp_2"和循环变量i直接拼接,导致生成的ID是dp_20、dp_21这类不符合预期的格式,自然会跳到后面的表单行。

正确的做法是,表单行的数字部分应该是2 + i(因为DataGridView的索引i从0开始,对应表单的第2行、第3行……),修改后的代码如下:

for (int i = 0; i < dataGridView1.Rows.Count; i++)
{ 
    var val1 = dataGridView1.Rows[i].Cells[0].Value.ToString(); // 出生日期
    var val2 = dataGridView1.Rows[i].Cells[1].Value.ToString(); // 身份证号
    var val3 = dataGridView1.Rows[i].Cells[2].Value.ToString(); // 电话

    // 计算表单行的数字:2 + i,对应第二行、第三行……
    int formRowNumber = 2 + i;
    driver.FindElement(By.Id("dp_" + formRowNumber.ToString())).SendKeys(val1);
    driver.FindElement(By.Id("tb_" + formRowNumber.ToString())).SendKeys(val2);
    driver.FindElement(By.Id("tel_" + formRowNumber.ToString())).SendKeys(val3);
}

这样循环变量i从0开始遍历DataGridView的所有数据,同时formRowNumber从2开始递增,正好匹配表单第二行及以后的ID规则,既不会跳过任何一条数据,也能精准填充到目标表单行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 02:51:08