12 минут и минимум информации. Остальные видео по playwright будут точно дольше, так как в 12 минут сложно впихнуть толковую информацию. Разве что раздробить безбожно.
Очень круто! В СНГ сообществе нет годных каналов по автоматизации на Python. Желаю успехов! Сними, пожалуйста, видео про использование асинхронных функций в авто-тесте в миксе с синхронными
Евгений, подскажите, не оказывались ли вы в ситуации, когда средствами Playwright необходимо закрыть окно печати (print preview) в Chrome? В моем случае при нажатии на кнопку в киоске печатается талон, в рамках теста сама печать не требуется, но требуется сделать скриншот и вернуться в киоск (отлично подошло бы нажатие кнопки "отмена" или клавиши Esc). Код страницы с формой печати напичкан shadow DOM элементами (т.е. просто так в них не прицелиться, и потому не удается нажать на кнопку "Отмена", например), попытки переключиться на окно и отправить событие нажатия клавиши Esc тоже не помогает. Задавал пару разных аргументов для браузер менеджера (типа -disable-print-preview или --kiosk-printing), о в итоге либо print preview не отображается (и никаких тебе скриншотов), либо вместо print preview открывается интерфейс печати ОС... =\
@@SeniorTester В одном из чатов предложили глянуть Print Dialogs в документации к Playwright Но print preview в хроме это походу ни dialog, ни popup, ни что-либо подобное. Не ловится ни через .wait_for_url, ни .wait_for_function, ни .wait_for_selector… В shadow DOM к кнопкам 'Print'/'Cancel' тоже не удается пробиться. Причем, если принудительно прописать фиксацию в терминале списка текущих открытых вкладок браузера на разных этапах теста, там не будет ничего, кроме уже открытых страниц. И при появлении окна печати, никаких новых вкладок не фиксируется. Не может же окно печати открываться в параллельном контексте? И вообще быть настолько недоступным? Или может?)) Причем, если окно печати в Chrome можно, например, вызвать через инъекцию JS, типа: page.evaluate("window.print()"), то закрыть это дело так же через JS не выйдет, пробовал и window.close(), и KeyboardEvent('keydown', {'key': 'Escape'}), и document.querySelector('button[aria-label="Cancel"]') Были идеи “подняться на уровень повыше” с библой pyautogui и методом в духе .keyboard.press("esc") или с subprocess и созданием .ahk файла и нажатиями кнопок… Ни в какую. Это фиаско)
@user-kz1rq5wd6n новая вкладка не отображается потому что это не вкладка. Это элемент браузера и средства автоматизации типа селениум и playwright к нему доступа не имеют. Честно говоря, у меня даже нет идей в какую сторону копать
А для чего селениум грид, если мы используем playwright? Думаю, если и есть желание так заморочится, то это будет сложнее. Ведь в playwright мы указываем в каком браузере запускать, с помощью аргументов для pytest. Но playwright не умеет обращаться к бразеру по IP.
@@SeniorTester Значит получается так, что он не всегда подходит для использования. У меня проект лежит в репозитории Ажура и там же собирается пайплайн,на ВМ запущено 2 контейнера: Грид и Аллюр Репортс. Естественно весь проект на селениуме. Получается,что переписать текущий проект на плейрайт с такой схемой не выйдет? Мы же в конфтесте указываем настройки браузера и там же параметры удалённого браузера в контейнере. Я к тому,что плейрайт так не умеет пока?
Плейрайт умеет запускать в нескольких браузерах без всяких настроек в коде. То есть, просто-напросто, в большинстве случаев грид не нужен. Но если нужно тестить не на последних версиях браузеров, тогда нужна ферма, но как её лучше обустроить, пока что я не знаю
Привет, я совсем новичок, пробовала воспроизвести ваш пример, что-то через терминал у меня не находит мой тест, пишет 0 коллекций, а через кнопки делает успешно, а чем может быть проблема?
А ведь можно прям в одном проекте из одного фала с тестами запускать и тесты под селениум и тесты под плейрайт, верно? Как-то сразу думается о всяких кнопках с уникальным названием, но с одинаковыми локаторами, кликнуть по которым можно только через порядковый номер в массиве. Хочется попробовать🙂
Интересно) Только не совсем понимаю, зачем использовать пайчарм если есть вскод в котором плейрайт отлично себя чувствует, плюс всякие конфиги, режимы отладки, трассировка, кроссбраузерность)
не правильно сформулировал свои мысли) Полностью согласен, насчет IDE) У вскода есть расширения с помощью которых удобно взаимодействовать с playwright,(такие как запись действий в браузере, trace viewer.) Соответственно, вопрос, можно ли как то это все перетянуть в пайчарм и как с этим взаимодействовать? Благодарю) @@SeniorTester
Очень класснок вступительное видео, а в что по вашему мнению более прогрессивное playwright или selenium, есть ли что-то в чём selenium лучше playwright-а?
Ну есть некоторые вещи, которые в селениуме удобнее и понятнее для новичка, работа с вкладками браузера, например. Но, конечно, в playwright больше функций и это делает его лучше. Но если нужно научиться базовому автотестированию, я бы начинал с selenium, а потом осваивал playwright
Красиво Евгений! Я рад что это наконец 12 минут _)) Ритмичненько / весело / просто.
Отличный формат. Ну и конечно содержание интересное. Пили ещё!
12 минут и минимум информации. Остальные видео по playwright будут точно дольше, так как в 12 минут сложно впихнуть толковую информацию. Разве что раздробить безбожно.
Спасибо за видео, в русегменте о плейрайте почти ничего нет, продолжай, думаю, что для многих будет актуально)
Есть мой курс на степике )
Я вот тоже очень мало встречал информации, поэтому и решил, что эту тему нужно раскрывать
спасибо, большое Евгений. Очень легко и понятно было. смотрим дальше.
спасибо за видео! на данный момент в связи со спецификой проекта перехожу с Cypress на Playwright c Python, пока полет нормальный)
спасибо не останавливайтесь
Спасибо за видео, надеюсь что ты в дальнейшем покажешь более серьезный проект на Playwright))
Конечно. Это так, вводное видео
Очень круто! В СНГ сообществе нет годных каналов по автоматизации на Python. Желаю успехов!
Сними, пожалуйста, видео про использование асинхронных функций в авто-тесте в миксе с синхронными
Годнота, бодренькая подача!
Спасибо
Супер , Спасибо!
Пожалуйста!
Евгений, подскажите, не оказывались ли вы в ситуации, когда средствами Playwright необходимо закрыть окно печати (print preview) в Chrome?
В моем случае при нажатии на кнопку в киоске печатается талон, в рамках теста сама печать не требуется, но требуется сделать скриншот и вернуться в киоск (отлично подошло бы нажатие кнопки "отмена" или клавиши Esc).
Код страницы с формой печати напичкан shadow DOM элементами (т.е. просто так в них не прицелиться, и потому не удается нажать на кнопку "Отмена", например), попытки переключиться на окно и отправить событие нажатия клавиши Esc тоже не помогает.
Задавал пару разных аргументов для браузер менеджера (типа -disable-print-preview или --kiosk-printing), о в итоге либо print preview не отображается (и никаких тебе скриншотов), либо вместо print preview открывается интерфейс печати ОС... =\
Это нужно копать. Необычный сценарий
@@SeniorTester
В одном из чатов предложили глянуть Print Dialogs в документации к Playwright
Но print preview в хроме это походу ни dialog, ни popup, ни что-либо подобное.
Не ловится ни через .wait_for_url, ни .wait_for_function, ни .wait_for_selector…
В shadow DOM к кнопкам 'Print'/'Cancel' тоже не удается пробиться.
Причем, если принудительно прописать фиксацию в терминале списка текущих открытых вкладок браузера на разных этапах теста, там не будет ничего, кроме уже открытых страниц. И при появлении окна печати, никаких новых вкладок не фиксируется.
Не может же окно печати открываться в параллельном контексте? И вообще быть настолько недоступным? Или может?))
Причем, если окно печати в Chrome можно, например, вызвать через инъекцию JS, типа: page.evaluate("window.print()"), то закрыть это дело так же через JS не выйдет,
пробовал
и window.close(),
и KeyboardEvent('keydown', {'key': 'Escape'}),
и document.querySelector('button[aria-label="Cancel"]')
Были идеи “подняться на уровень повыше” с библой pyautogui и методом в духе .keyboard.press("esc") или с subprocess и созданием .ahk файла и нажатиями кнопок… Ни в какую.
Это фиаско)
@user-kz1rq5wd6n новая вкладка не отображается потому что это не вкладка. Это элемент браузера и средства автоматизации типа селениум и playwright к нему доступа не имеют. Честно говоря, у меня даже нет идей в какую сторону копать
А как фреймворк на плейрайт запускать через Selenium Grid? Нужно всё равно импортировать селениум чтобы указать IP и порт контейнера с Гридом?
А для чего селениум грид, если мы используем playwright?
Думаю, если и есть желание так заморочится, то это будет сложнее. Ведь в playwright мы указываем в каком браузере запускать, с помощью аргументов для pytest. Но playwright не умеет обращаться к бразеру по IP.
@@SeniorTester Значит получается так, что он не всегда подходит для использования. У меня проект лежит в репозитории Ажура и там же собирается пайплайн,на ВМ запущено 2 контейнера: Грид и Аллюр Репортс. Естественно весь проект на селениуме. Получается,что переписать текущий проект на плейрайт с такой схемой не выйдет? Мы же в конфтесте указываем настройки браузера и там же параметры удалённого браузера в контейнере. Я к тому,что плейрайт так не умеет пока?
Плейрайт умеет запускать в нескольких браузерах без всяких настроек в коде. То есть, просто-напросто, в большинстве случаев грид не нужен. Но если нужно тестить не на последних версиях браузеров, тогда нужна ферма, но как её лучше обустроить, пока что я не знаю
Привет, я совсем новичок, пробовала воспроизвести ваш пример, что-то через терминал у меня не находит мой тест, пишет 0 коллекций, а через кнопки делает успешно, а чем может быть проблема?
Скорее всего, вы назаали или тестовую функцию или файл не на test_
Посмотрите моё видео про pytest
Думал обычно используют VScode i JS для Playwright.
Playwright создал библиотеки для разных языков и python один из них
А ведь можно прям в одном проекте из одного фала с тестами запускать и тесты под селениум и тесты под плейрайт, верно? Как-то сразу думается о всяких кнопках с уникальным названием, но с одинаковыми локаторами, кликнуть по которым можно только через порядковый номер в массиве. Хочется попробовать🙂
В принципе можно, ага
Мне кажется playwright отменяет selenium или я не прав?
Здесь только время покажет.
Интересно)
Только не совсем понимаю, зачем использовать пайчарм если есть вскод в котором плейрайт отлично себя чувствует, плюс всякие конфиги, режимы отладки, трассировка, кроссбраузерность)
IDE каждый выбирает по своим предпочтениям. Мне больше нравится PyCharm.
Классный комментарий! Только не совсем понимаю зачем использовать вс код, когда есть пайчарм)
не правильно сформулировал свои мысли)
Полностью согласен, насчет IDE)
У вскода есть расширения с помощью которых удобно взаимодействовать с playwright,(такие как запись действий в браузере, trace viewer.)
Соответственно, вопрос, можно ли как то это все перетянуть в пайчарм и как с этим взаимодействовать?
Благодарю)
@@SeniorTester
А оно нормально записывает действия или генерит кучу лишнего кода? Не пробовал, но обычно такие штуки генерят кучу лишнего
Очень класснок вступительное видео, а в что по вашему мнению более прогрессивное playwright или selenium, есть ли что-то в чём selenium лучше playwright-а?
Ну есть некоторые вещи, которые в селениуме удобнее и понятнее для новичка, работа с вкладками браузера, например.
Но, конечно, в playwright больше функций и это делает его лучше.
Но если нужно научиться базовому автотестированию, я бы начинал с selenium, а потом осваивал playwright