You need to enable JavaScript to run this app. C#如何获取href不同但类名相同的cmc-link类第二行元素的值
优惠活动
大模型
产品
解决方案
定价
更多

C#如何获取href不同但类名相同的cmc-link类第二行元素的值

你当前使用的GetElementById方法仅能匹配页面中id属性为指定值的唯一元素,无法筛选class属性匹配的元素,也不能定位到第二个符合条件的目标元素,正确实现方式如下:

基础实现(无需额外依赖)

// 筛选所有class为cmc-link的元素
List<HtmlElement> cmcLinks = new List<HtmlElement>();
foreach (HtmlElement element in webBrowser2.Document.All)
{
    if (element.GetAttribute("className") == "cmc-link")
    {
        cmcLinks.Add(element);
    }
}

// 先判断是否存在至少2个符合条件的元素,避免索引越界报错
if (cmcLinks.Count >= 2)
{
    // 索引从0开始计数,第二个元素对应下标为1
    textBox2.Text = cmcLinks[1].InnerText?.Trim() ?? string.Empty;
}

简化实现(需引用LINQ)

如果项目允许使用LINQ,可以简化筛选逻辑:

using System.Linq;

var cmcLinks = webBrowser2.Document.All.Cast<HtmlElement>()
    .Where(e => e.GetAttribute("className") == "cmc-link")
    .ToList();

if (cmcLinks.Count >= 2)
{
    textBox2.Text = cmcLinks[1].InnerText?.Trim() ?? string.Empty;
}

注意事项

  • DOM的class属性在C# WebBrowser控件中对应的属性名为className,需要通过GetAttribute("className")获取
  • 建议保留列表长度校验逻辑,避免页面结构变化导致的索引越界异常
  • 可以按需对取出的文本做数值转换、格式调整等二次处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 09:15:04