Selenium IDE:使用XPath提取属性ID报错,请求解决方案
问题原因
Selenium IDE 的 store value 命令要求目标必须是元素节点,但你写的 XPath (//div[@class[starts-with(.,'commentItem')]]/@id)[1] 直接返回的是属性节点([object Attr]),不符合命令的参数要求,因此报错。浏览器控制台允许XPath返回属性值,但Selenium IDE的命令逻辑对目标类型有严格限制。
解决方案
以下两种方法可以解决这个问题:
方法1:使用 store attribute 命令(推荐)
这个命令专门用于获取元素的属性值,支持直接指定元素和属性:
| Command | Target | Value |
|---|---|---|
| store attribute | xpath=(//div[starts-with(@class,'commentItem')])[1]@id | Id |
注:Target的格式是「元素定位器@属性名」,先定位到目标div元素,再通过
@id指定要获取的属性。
方法2:使用 execute script 命令执行JS
通过JavaScript直接获取元素的id属性,灵活性更高:
方式A:用CSS选择器
| Command | Target | Value |
|---|---|---|
| execute script | return document.querySelector('div[class^="commentItem"]').id; | Id |
方式B:用XPath在JS中执行
| Command | Target | Value |
|---|---|---|
| execute script | return document.evaluate('(//div[starts-with(@class,"commentItem")])[1]/@id', document, null, XPathResult.STRING_TYPE, null).stringValue; | Id |
内容的提问来源于stack exchange,提问作者Al Wellens
相关产品推荐
相关产品推荐

