Xpather не оценивает XPath на Firefox 3.5, но отлично работает на Firefox 3.6 - PullRequest
0 голосов
/ 30 мая 2011

Я работаю над приложением richface и пытаюсь оценить следующий xpath с xpather на firefox3.5. XPather не оценивает ни один xpath, хотя тот же самый xpath отлично работает на Firefox 3.6. Страница, которую я тестирую, похожа на

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:o="http://openfaces.org">
  <head>
    <script src="some source" type="text/javascript"></script>
    <script src="some source" type="text/javascript"></script>
    <link class="component" href="some source" rel="stylesheet" type="text/css" />
    <link class="component" href="some source" 
          media="rich-extended-skinning" rel="stylesheet" type="text/css" />
    <link class="component" href="some source" rel="stylesheet" type="text/css" />
    <script type="text/javascript">window.RICH_FACES_EXTENDED_SKINNING_ON=true;</script>
    <link type="text/css" href="some source" rel="stylesheet"/>

  <body class="Banner" onresize="setTreePnlHeight()" onload="loadApp();">
    <input type="hidden" id="dsTreeScrollPos" value="0" />
    <div id="a" class="application"><form id="form" name="form" method="post" action="...">
    ....
  </body>
</html>

Если я использую xpather (v1.4.5) для оценки простого xpath на FF3.5, как //input, он не возвращает никакого результата. Является ли пространство имен причиной этой проблемы? Как я могу проверить мой xpath на FF3.5?

1 Ответ

1 голос
/ 30 мая 2011

простой xpath на FF3.5, как //input, он не возвращает никакого результата.Является ли пространство имен причиной этой проблемы?

Да.Если вы посмотрите на ваш документ, у вас там есть определение пространства имен по умолчанию.

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:o="http://openfaces.org">

Это означает, что //input ищет элемент <input> без пространства имен, тогда как вы должны искать <input>это находится в пространстве имен http://www.w3.org/1999/xhtml.Вам необходимо определить это пространство имен и связать его с префиксом, а затем использовать этот префикс в вашем XPath.как //x:input

...