Я начал использовать Capybara несколько дней назад, и я никогда раньше не использовал Selenium. Я хочу посмотреть, как мои тесты выполняют в beowser и используют для него gem selenium-webdriver
. У меня есть следующий тест в Капибара:Capybara с: js => true вызывает тесты с ошибкой
RSpec.feature 'Authentication', :type => :feature do
def register_with_form
visit '/'
click_on 'Account'
click_on 'Register'
fill_in 'Email', :with => '[email protected]'
fill_in 'Name', :with => 'John'
fill_in 'Last name', :with => 'Smith'
fill_in 'Password', :with => '1234567890'
fill_in 'Password confirmation', :with => '1234567890'
find('.testing-sign-up-class')
click_button 'Sign up'
expect(page).to have_css '.hd-title', 'Get Started'
end
scenario 'User registers' do
register_with_form
expect(page).to have_css '.hd-title', 'Get Started'
expect(page).to have_css '.alert-success', 'Welcome! You have signed up successfully.'
expect(page).to have_css '.panel-title', 'What would you like to use GridHub for?'
end
scenario 'User sign out', :js => true do
register_with_form
click_on 'Account'
click_on 'Logout'
expect(page).to have_css '.alert-success', 'Signed out successfully.'
end
end
:js => true
Добавление к любому scenario
сломал тест. консоль показывает:
1) Authentication When not registered User sign out
Failure/Error: click_button 'Sign up'
Selenium::WebDriver::Error::UnknownError:
Element is not clickable at point (606, 23.73333740234375). Other element would receive the click: <input autocomplete="off" name="term" id="term" class="form-control nav-search-field main-ac autocomplete ui-autocomplete-input" placeholder="search items" data-url="/search" type="text">
Я добавил гем database_cleaner, мой spec_helper.rb
имеет следующий код:
config.before(:each, type: :feature) do
driver_shares_db_connection_with_specs = Capybara.current_driver == :rack_test
if !driver_shares_db_connection_with_specs
DatabaseCleaner.strategy = :truncation
end
end
config.before(:each) do
DatabaseCleaner.start
end
config.append_after(:each) do
DatabaseCleaner.clean
end
И мой bin/rspec
файл имеет следующую строку:
config.use_transactional_fixtures = false
Спасибо.
UPDATE
Я предполагаю, что есть может быть проблема в браузере что-то еще. Причина в некоторых ситуациях, когда тест открывает браузер (я запустил firefox и chrome), а некоторые элементы могут быть «ниже» окна браузера, в таких ситуациях тесты не выполняются, причина не может найти нужную кнопку. Если у меня есть время прокрутить окно браузера, некоторые тесты могут быть успешными.
Это может быть полезно для вас http://stackoverflow.com/questions/11335303/cant-find-element-to-click-on-using-capybara-rails3 –