Я делаю некоторые автоматизации с помощью RSpec и Watir-WebDriver - в настоящее время у меня есть два метода, которые используют общий фрагмент код, как этогоWatir #when_present вопрос несовместимого таймаута
# The snippet shown is meant to find a specific div, and when an element within it is present, then perform the click action
search_modal = @browser.div(:class, 'asset-search')
search_modal.when_present do
search_modal.div(:class, 'quick-search').click
end
Я побежал его для одного метода, и он работал правильно, без ошибок. Я запустил его по второму методу, и он истечет через 30 секунд. Ускорьте вперед до сегодняшнего утра, и этот второй метод теперь работает правильно.
Опять же, это тот же код, который используется в двух разных методах. Есть ли некоторые проблемы с использованием методов #wait? Если они известны как хрупкие или тонкие, есть ли лучший способ кодировать это?
Thanks
Вы уверены, что проблема связана с методами ожидания? Когда время ожидания истечет, вы видите элемент, который вы ожидали? Две вещи, которые вы хотите проверить: (1) обычно занимает около 30 секунд, чтобы элемент отображался, поскольку это означает, что иногда оно заканчивается или находится под лимитом времени, и (2) является действием для запуска 'search_modal' всегда работающего ? В качестве примера последнего у меня были некоторые средства управления автозаполнениями, когда установка текстового поля имела непоследовательные результаты для открытия списка автозаполнения - то есть проблема заключалась в том, что он запускал модальный, а не ожидал модального. –
@ JustinKo, я бы сказал, что это немного и то, и другое. На экране, когда я смотрю его, он идет в нужное место, но через тридцать секунд терминал истекает через 30 секунд, говоря, что не может найти нужный элемент - что путает, когда он действительно туда попадает! – kmancusi