2013-02-22 1 views
2

Я использую RSpec и Capybara для тестирования Ruby on Rails.Как настроить локализованную кнопку с RSpec и Capybara?

Приложение My Rails локализовано для разных языков (на английском, немецком и т. Д.).

Например, я бы хотел, чтобы Capybara отправил форму, но, очевидно, не может использовать ее значение для ее выбора, потому что значение изменяется в зависимости от выбранного языка.

Это не будет работать в моем случае:

click_button("Create my account") 

Есть ли способ, чтобы просто выбрать первый input[type="submit"] элемент на странице с Капибара?

Спасибо за любую помощь.

+0

BTW: Использование идентификатора - это путь ... Но, как правило, функциональность тестирования нажатия кнопки не должна зависеть от различной локализации. Я всегда создаю тесты против метки локали по умолчанию ... «en» в моем случае. –

ответ

7

Я бы сказал:

find('input[type="submit"]').first.click 

но дать ему класс или идентификатор, это намного безопаснее.

+0

Спасибо. Я не мог заставить это работать, но и использовал идентификатор. – Tintin81

+0

@ Tintin81 рабочая версия на самом деле 'find ('input [type =" submit "]'). Нажмите« Или », используя тот же подход, что и выше« all («input [type =" submit "] '). click' – luopio

0

Простой способ:

first('input[type="submit"]').click 
0

Вы можете также сузить @ apneadiving Ответим с помощью CSS селекторов :

find ("# my_form input [type = 'submit']"). Нажмите

Таким образом, вам не нужно изменять HTML-код для соответствия вашим тестам.