У меня есть select2 v4, который загружает опции через AJAX.Я запускаю тест Cucumber, где мне нужно выбрать 2 варианта списка, но я не могу открыть список и загрузить его (который обычно заполняется, когда я набираю 2 или символы).
Я попытался:
Как и предполагалось здесь :
@session.execute_script("$('#publish_to').select2('open')")
и
@session.first(".input.publish_to .select2-container").click
и
@session.first("#publish_to").find(".select2-choice").click
, которыене выдают ошибку, но я не могу выбрать параметры, поэтому я предполагаю, что щелчок не работает.Вещи, которые я пытался выбрать варианты:
# This one cannot find the css:
@session.find(".select2-results__options", text: client.email).click
# This one gives me a Timeout error
@session.evaluate_script "$('#publish_to').val(#{client.id}).trigger('change')"
# This one gives me a Timeout error
@session.evaluate_script "$('.select2-search__field').trigger('keydown').val('#{client.email}').trigger('keyup')";
sleep 10
@session.find('.select2-search__option', text: client.email).click
Все, что с trigger
дает мне ошибку тайм-аута, поэтому я пытался ждать jQuery.active
, но у меня никогда не было true
, даже ожидание в течение 2 минут:
counter = 0
timeout_in_sec = 120
while counter < timeout_in_sec && @session.evaluate_script('jQuery.active').zero?
sleep 1.second
counter+=1
end
Я пытался использовать gem capybara-select2 running: @ session.select2 client.email, css: '#publish_to', search: true, но я получаю ошибку undefined method
select2 'для # and I have
World (CapybaraSelect2) in my
env.rb`
Я использую Cucumber v3.1.2
с рубином gem 'cucumber-rails'