我不熟练使用Xpath,并且在尝试检索ID包含以“adfr_ed_frame”开头的字符串的所有元素时遇到了一些困难。但由于某种原因,它不会检索页面上的任何元素,除非我在具有特定ID的元素的节点内执行它。但我需要在任何页面中运行代码,然后搜索该特定ID并检索该元素。 我猜测“后代”轴只适用于上下文节点,但如果是这种情况,我不知道如何在所有文档中扩大搜索范围。 我的示例代码:
Function get_elements(xpath, descendant){
let results = [];
let query = document.evaluate(xpath, descendant || document,
null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
for (let i=0, length=query.snapshotLength; i<length; ++i){
if (query.snapshotItem(i).id != ""){
results.push(query.snapshotItem(i));
}
}
return results;
}
results = (get_elements("//*[contains(@id, 'adfr_ed_frame')]"));
答案 0 :(得分:0)
在xpath字符串中使用属性使用之前的单词@
来设置它是属性名称
//*[contains(@id, 'adfr_ed_frame')]
答案 1 :(得分:0)
//*[@id[contains(./text(), 'adfr_ed_frame')]]
其中读作:
所有元素都具有属性id
,其文字内容包含adfr_ed_frame
。