Не удалось оценить XPath (Behat/Mink)

Я использую следующую функцию:

    /**
    * Click on the element with the provided xpath query
    *
    * @When /^I click on the element with xpath "([^"]*)"$/
    */
   public function iClickOnTheElementWithXPath($xpath)
   {
       $session = $this->getSession(); // get the mink session
       $element = $session->getPage()->find('xpath',$session->getSelectorsHandler()->selectorToXpath('xpath', $xpath)); // runs the actual query and returns the element

       // errors must not pass silently
       if (null === $element) {
           throw new \InvalidArgumentException(sprintf('Could not evaluate XPath: "%s"', $xpath));
       }

       // ok, let's click on it
       $element->click();

   }

в моем FeatureContext.php пытаюсь нажать кнопку со следующим XPath (шаг Behat): Когда я нажимаю на элемент с XPath

//html/body/div[4]/div/div/div/div[2]/div[2]/div[4]/div/div/div/div[2]/ol/li/span[4]/a[1]

Firebug доволен этим XPath, но behat выдает ошибку:

Не удалось оценить XPath: "//html/body/div[4]/div/div/div/div[2]/div[2]/div[4]/div/div/div/div[2]/ol /ли/диапазон[4]/а[1]"

Что я делаю неправильно?

вот пример Behat на w3schools, пытающийся нажать на кнопку «Попробуйте сами»:

             Feature: xpath try on w3schools.com/tags/att_input_src.asp 
             Scenario: click button on xpath 
              @javascript
             When I go to "/tags/att_input_src.asp" 
              And I click on the element with xpath "/html/body/div/div[3]/div[6]/div/a[1]" 
              And I wait 5 seconds
             Then I should be on "tags/tryit.asp?filename=tryhtml_input_src"

выдает ту же ошибку, не удалось оценить xpath, xpath на Firebug показывает правильную кнопку...


person Ginz Its    schedule 08.08.2013    source источник
comment
Ваше выражение XPath, вероятно, просто ничего не возвращает. Не могли бы вы дать нам образец ввода для работы?   -  person Jens Erat    schedule 10.08.2013
comment
тот же xpath вернул правильное местоположение при проверке firebug   -  person Ginz Its    schedule 19.08.2013


Ответы (1)


У меня такая же проблема. Похоже, вам нужно опустить /html/body. Для меня

//div[2]/div/div[2]/div/table/tbody/tr/td[3]

работает отлично.

person eventhorizon.pl    schedule 22.08.2013