Не нашла в actions возможности подождать возникновения события. Нужно уметь ждать window.onload
Также кажется я это уже репортила (не помню)? Но в issues нет задач про event ни открытых ни закрытых.
/cc @arikon @SevInf
Не нашла в actions возможности подождать возникновения события. Нужно уметь ждать window.onload
Также кажется я это уже репортила (не помню)? Но в issues нет задач про event ни открытых ни закрытых.
/cc @arikon @SevInf
Зачем ждать
window.onload
? Selenium Server отдаёт ответ после того, как страница полностью загрузилась.Если нужно слушать какое-то другое событие, то можно использовать
actions.waitForJsCondition()
https://github.com/gemini-testing/gemini/blob/master/lib/browser/actions.js#L99-L113Сначала через
executeJs()
повесить обработчик, выставляющий значение переменной, потом вwaitForJsCondition()
слушать значение этой переменной.Мы это уже обсуждали в одном из тредов.
Если придумаешь шоткат для этого действия, присылай pr. Рассмотрим.
Мне нужно window.onload, какая разница зачем. Особенность рендеренга моей конкретной страницы такая. Насчет PR: по-моему в целом необходима реакция на события. Это же устоявшийся паттерн во фронтенде, многие вещи происходят по определенному событию. Поэтому я думаю, что это не просто мини-доделка какая-то, а расширение функциональности Gemini. Поэтому на PR от пользователей я бы не надеялась. Но на мой взгляд это стоит внести в планы на следующую версию.
Вполне возможно что то, что ты хочешь сделать, сделать не получится. Событие
window.onload
произойдёт раньше, чем код твоего теста получит управление. Так работает Selenium.Нам пока ни разу не потребовалось. Если потребуется мы, конечно, сделаем.
Ещё можно спросить у @SevInf, будет ли у него время заняться этим.
В Selenium есть выбор из нескольких стратегий загрузки страницы, та которая используется по умолчанию в стандарте описывается так:
То есть, в момент, когда мы переходим к выполнению тестов на странице, window.onload гарантировано уже случилось.
Погодите. Мы же в прошлых тредах выяснили, что Selenium не нужен если тесты только для Chrome. И в документации так написано https://ru.bem.info/tools/testing/gemini/#Установка-стороннего-ПО
У меня никакой Selenium не запущен. Он мне нужен?
Извини, я имел ввиду WebDriver. В этом плане и селенум, и ChromeDriver и phantomjs должны себя одинаково вести
Все понятно, спасибо. Попробую с флагом через
executeJs
, с другим событием, которое попозже.@varya Ну и мы это уже обсуждали https://github.com/bem/bem-forum-content-ru/issues/505
Вот видите — обсуждали, а отсутствие возможности реагировать на событие так и выглядит нелогичным :-)