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

Robot Framework遍历网页用户列表时XPath语法错误如何解决?

问题分析与解决

你的代码存在两个关键错误:

  • XPath语法错误:Get WebElement的xpath参数不能直接将WebElement对象(${user})与XPath片段拼接,因为${user}是元素实例而非字符串,SeleniumLibrary无法解析这种格式。
  • 未定义变量使用:Get Text调用了未定义的${parent}变量,应该使用获取到的用户名元素${name_el}。

下面提供两种可行的修正方案:

方案一:基于WebElement上下文的相对查找

利用using参数指定查找的上下文元素,配合相对XPath(以.开头)定位子元素:

@{users_list}=    Get WebElements    xpath=//li[contains(@class, 'user_list')]
FOR    ${user}    IN    @{users_list}
    ${name_el}=    Get WebElement    xpath=.//div[@class='users-name']    using=${user}
    ${name_text}=    Get Text    ${name_el}
    Log    Name= ${name_text}
END

方案二:直接定位所有用户名元素

跳过li元素的遍历,直接定位所有目标用户名div,代码更简洁高效:

@{name_elements}=    Get WebElements    xpath=//li[contains(@class, 'user_list')]/div[@class='users-name']
FOR    ${name_el}    IN    @{name_elements}
    ${name_text}=    Get Text    ${name_el}
    Log    Name= ${name_text}
END

额外说明

如果user_list是li标签的唯一class,也可以将XPath中的contains(@class, 'user_list')替换为@class='user_list',实现精确匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 14:12:09