Я использую Cucumber & Capybara для интеграционного тестирования.Поскольку сайт использует много javascript, я настроил среду для использования селена в качестве драйвера javascript.Тем не менее, кажется, что он не работает в элементе, который, как я знаю, должен быть там.Есть ли что-то, что мне не хватает?
Вот функция:
Feature: Combat
In order to engage in combat
As a registered user
I want to be able to kill enemy ships
@javascript
Scenario: Initialize combat
Given I am logged in
# When I go to the homepage
When I click element "#enter-combat"
Then the page should contain a section with the class "map"
Вот определение шага для Когда я нажимаю элемент
When /^(?:|I )click element "([^"]*)"$/ do |id|
find(id).click
end
Я знаю, что Given I am logged in
работает, так как другие тесты, которые его используют, проходят нормально.Любые идеи о том, почему нельзя найти # enter-fight?Когда я сам захожу физически, я вижу это очень хорошо.
Редактировать: Добавлены другие определения шагов.
Given /^I am logged in$/ do
email = 'murray@monkeyisland.com'
password = 'demonic'
steps %Q{
Given the following user exists:
| first_name | last_name | email | password | password_confirmation |
| Murray | Skull | #{email} | #{password} | #{password} |
And I login as "#{email}" with the password "#{password}"
}
end
Given /^I login as "([^\"]*)" with the password "([^\"]*)"$/ do |email, password|
steps %Q{
Given I am not logged in
When I go to the login page
And I fill in "user_email" with "#{email}"
And I fill in "user_password" with "#{password}"
And I press "Login"
}
end
Вот вывод, когда я запускаю:
(::) неудачные шаги (::)
Невозможно найти '# enter-fight' (Capybara :: ElementNotFound) ./features/step_definitions/combat_steps.rb:6:in /^(?:|I )click element "([^"]*)"$/'
features/combat/combat.feature:9:in
Когда я нажимаю элемент "# enter-fight "'
Edit
Сейчас я использую один из веб-шагов по умолчанию: и я нажимаю" enter-fight ", поэтому моя функция теперь:
Feature: Initialize Combat
In order to engage in combat
As a registered user
I want to be able to initialize it
@javascript
Scenario: Initialize combat
Given I am logged in
When I go to the homepage
And I press "enter-combat"
Then the page should contain a section with the class "map"
Все та же ошибка