Почему это предложение XPath не подходит для Firefox? - PullRequest
0 голосов
/ 21 сентября 2010
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, XPath, сгенерированный генератором XPath Chickenfoot на кнопке GMail 'Older'.

Что это за XPath и почему он сломан?

1 Ответ

1 голос
/ 21 сентября 2010

Нет элемента #text.Чтобы получить текстовое содержимое, используйте text(), т.е.

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