Капибара не найдет JavaScript - PullRequest
1 голос
/ 08 марта 2011

Я новичок в тестировании Капибары, и у меня возникло несколько проблем.

У меня есть сценарий, который я пытаюсь запустить, и это шаг реализации:

When /^I select the signin link$/ do
  click_link 'Sign in'
end

Я попытался получить доступ к этой ссылке с помощью xpath, css и также попробовал реализацию within. Капибара, похоже, не может его найти, и возвращает исключение Capybara::ElementNotFound во всех случаях.

Когда я загружаю веб-страницу без JavaScript, ссылка не отображается, и мне интересно, почему Capybara не может ее найти. Я нашел trigger метод, но не уверен, как он работает. У кого-нибудь есть рабочий пример trigger или какие-то другие идеи о том, что мне следует делать?

1 Ответ

3 голосов
/ 08 марта 2011

Используете ли вы веб-драйвер селена для запуска этого теста? Похоже, вы пытаетесь запустить сценарий, который требует JavaScript для просмотра определенных элементов, без использования драйвера, который поддерживает JavaScript.

В вашем файле .feature все, что вам нужно сделать, это добавить эту строку до сценария:

@javascript
Scenario:  My Scenario
  When blah blah blah
  ...

Тег @javascript указывает капибаре использовать selenium-webdriver для запуска теста. Он запустит Firefox и пройдет тестирование, позволяя работать всем функциям JavaScript. Это значительно замедляет тестирование, поэтому используйте его только тогда, когда это абсолютно необходимо для тестирования поведения ajax-y и javascript-y.

Если это все еще не работает, вы можете использовать этот шаг:

Then show me the page
When I select the signin link

Который откроет вам страницу в новом браузере в текущем состоянии этой страницы для вашего удовольствия от просмотра.

...