2016-07-25 5 views
0

В моем приложении rails я использую rails_admin. Я хочу заполнить отношения. Скажем, Post принадлежит автору. Я хочу установить автора. rails_admin использует форму автозаполнения для выбора этих данных, т. е. xhr. Как выбрать значение и отправить эти данные с помощью capybara. Нормальный выбор здесь не работает.Интеграционные тесты: заполнение автозапуска в Rails_Admin с использованием Capybara для

Я предполагаю, что мне нужно принять следующие действия

  1. Нажмите на иконку моркови,
  2. Выберите первое значение из выпадающего списка

Или есть какой-то другой подход, чтобы заполнить такие данные, т.е. выполнить скрипт и т. д. Но как это сделать?

Edit:

В настоящее время, я начал использовать драйвер селена, и я использую следующее решение

within '#post_user_id_field' do 
    find(".input-group-btn").click 
end 
page.execute_script(%q{$("ul#ui-id-3").find("li")[1].click()}) 

Предлагайте некоторые лучший подход.

Спасибо заранее,

ответ

0

Я посмотрел на Using Capybara with RSpec я нашел некоторую полезную информацию. Не видя какой-либо из вашего кода, вы можете сделать что-то вроде следующего (принимая по ссылке выше):

describe 'some stuff which requires js', :js => true do 
    it 'will use the default js driver' 
    it 'will switch to one specific driver', :driver => :webkit 
end 

Это позволит JavaScript в тестах. Если у вас все еще есть проблемы с выбором, вы можете выполнить некоторую отладку, поставив save_and_open_screenshot в свой тестовый код, чтобы увидеть, что видит драйвер javascript.

0

Как вы делаете это действительно зависит от HTML на странице, но в основном она сводится к

find(:css, 'selector for the caret').click 
find(:css, 'selector for the dropdown elements', text: 'text of the dropdown element to be selected').click 

и убедитесь, что вы используете драйвер, поддерживающий JS - https://github.com/jnicklas/capybara#drivers

Примечание: : css в вызовах на поиск не требуется, если Capybara.default_selector ==: css (что он делает по умолчанию)