我正在尝试在Chrome中提取xpath查询的文本$x('//td[@class="first"]/a/text()')
但是当我运行此命令时,我看到text
而不是锚链接的实际文本值。
当我运行s.toString()
时,我看到[object Text],[object Text],[object Text],[object Text]...
。
如何在xpath中获取字符串值?
答案 0 :(得分:7)
因为$x()
返回与给定XPath表达式匹配的HTML或XML元素数组。这意味着它实际上是document.evaluate()的快捷方式。
因此,如果您想获得精确的元素,只需从阵列中取出位置
$ X(元件)[0]
这会有所帮助:https://developers.google.com/web/tools/chrome-devtools/console/command-line-reference#xpath
如果你想打印(或做其他东西)定位器在控制台中找到的所有文本元素 - 你可以只调用forEach
函数)
$x('//a/text()').forEach(function(el){console.log(el)})
答案 1 :(得分:0)
在这种情况下,请使用以下命令:
-元素的文本存储在数据中。
-您想修剪数据中的前导空格和尾随空格。
-您想轻松地复制并粘贴控制台中以换行符分隔的输出。
console.log($x(<pathToElement>/text()').map(function(el){return el.data.trim()}).join("\n"))
答案 2 :(得分:0)
您可以使用.map(a => a.textContent)提取您的需求。
$x('//td[@class="first"]/a/text()').map(a=>a.textContent)