Я использую огурец и ватир. Вопрос относится к приведенному ниже коду:
When(/^I click on all 'Show more'$/) do
@browser.links(:class, "more-matches").each do |d|
if d.text == "Show more"
d.click
end
end
end
Теперь, когда тестовый пример достигает этого определения шага, тестовый пример отображается как пройденный без нажатия на все ссылки, захваченные с помощью @browser.links(:class, "more-matches"). Конкретный код не реализуется, возможно, потому, что вызов ajax еще не завершен, а массив содержит нулевые элементы и не проходит через цикл. Код работает, если я ввожу "sleep 2"
в начале определения этого шага. Может ли кто-нибудь сказать мне, как справиться с этим случаем, добавив код, чтобы вызов ajax завершился, а массив успешно содержал все элементы и циклы. Я также попытался добавить код:
if @browser.execute_script('return jQuery.active').to_i == 0
но это тоже не сработало. Пожалуйста, предложите способ, которым определение шага выполняется и не проходит из-за пустого массива.