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

Selenium使用XPath定位元素时获取错误文本值问题求助

原因说明
  • 定位范围不准确:Steam页面中data-value="19"的元素存在多处,你编写的未限定父级范围的XPath会优先匹配到其他区域(比如全站游戏分类模块)的Action标签计数,你拿到的1 635是全平台Action分类的游戏总数量,而你需要的30是当前畅销榜筛选结果下符合条件的Action标签游戏数量,二者数据源完全不同。
  • 代码写法存在疏漏:FindElement()返回的是IWebElement对象,不能直接赋值给字符串变量,你实际运行的代码应该是调用了.Text属性,属于问题编写时的遗漏。
解决方法

首先优化XPath定位逻辑,通过外层带明确筛选属性的div限定范围,避免匹配到其他区域的同属性元素,精准定位语句为:
//div[@data-param="tags" and @data-loc="Action"]//span[@class="tab_filter_control_count"]

正确的C#实现代码如下:

// 可选:添加显式等待保证元素加载完成,避免取到空值
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(5));
IWebElement actionCountElement = wait.Until(d => d.FindElement(By.XPath("//div[@data-param='tags' and @data-loc='Action']//span[@class='tab_filter_control_count']")));

// 提取文本并处理千位分隔用的空格
string countText = actionCountElement.Text.Trim().Replace(" ", string.Empty);
int actionTagCount = int.Parse(countText);

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

相关产品推荐
方舟 Agent Plan

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

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