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

NodeJS+Selenium中如何对返回元素进行二次XPATH解析?

解决Selenium中基于父元素的XPATH查询重复结果问题

问题出在你使用的XPATH路径上:当你通过elements[i].findElement调用时,用//time[contains(@class, 'time-class')]会从整个文档根节点开始查找,而不是从当前的li元素下搜索,所以每次都会返回页面中第一个匹配的time元素,导致输出重复。

只需要把XPATH改成相对路径,在开头加上.即可,.表示从当前上下文节点(也就是当前循环的li元素)开始查找:

修改后的代码片段:

for (let i = 0; i < elements.length; i++) {
    // 关键修改:XPATH开头添加.
    let timeContainer = await elements[i].findElement(By.xpath(".//time[contains(@class, 'time-class')]")).getAttribute("datetime");
    let innerHTML = await elements[i].getAttribute("innerHTML");

    console.log(timeContainer);
}

这样修改后,每次查询都会限制在当前li元素的范围内,就能正确获取每个li对应的time元素的datetime属性值了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 23:33:24