为什么这个XPath句子对Firefox有误?

时间:2010-09-21 13:08:46

标签: firefox xpath chickenfoot

click(new XPath("/HTML[1]/BODY[1]/DIV[1]/DIV[2]/DIV[1]/DIV[2]/DIV[1]/DIV[2]/DIV[1]/DIV[1]/DIV[2]/DIV[1]/DIV[1]/DIV[1]/DIV[1]/DIV[2]/DIV[1]/DIV[1]/DIV[1]/DIV[1]/DIV[1]/DIV[2]/DIV[1]/SPAN[1]/SPAN[2]/#text[1]"));

..或

var foo = document.evaluate("/HTML[1]/BODY[1]/DIV[1]/DIV[2]/DIV[1]/DIV[2]/DIV[1]/DIV[2]/DIV[1]/DIV[1]/DIV[2]/DIV[1]/DIV[1]/DIV[1]/DIV[1]/DIV[2]/DIV[1]/DIV[1]/DIV[1]/DIV[1]/DIV[1]/DIV[2]/DIV[1]/SPAN[1]/SPAN[2]/#text[1]", document, null, XPathResult.ANY_TYPE,null);

结果:

[Exception... "The expression is not a legal expression."  code: "51" nsresult: "0x805b0033 (NS_ERROR_DOM_INVALID_EXPRESSION_ERR)"  location: "chrome://chickenfoot/content/chickenscratch.js Line: 2"]

Firefox 3.6,由Applefoot的XPath生成器生成的XPath,位于GMail的按钮'Older'。

这种XPath是什么以及它被打破的原因?

1 个答案:

答案 0 :(得分:1)

没有#text元素。要获取文本内容,请使用text(),即

"/HTML[1]/BODY[1]/..../SPAN[2]/text()"