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 к нему доступа не имеют. Честно говоря, у меня даже нет идей в какую сторону копать
А ведь можно прям в одном проекте из одного фала с тестами запускать и тесты под селениум и тесты под плейрайт, верно? Как-то сразу думается о всяких кнопках с уникальным названием, но с одинаковыми локаторами, кликнуть по которым можно только через порядковый номер в массиве. Хочется попробовать🙂
Привет, я совсем новичок, пробовала воспроизвести ваш пример, что-то через терминал у меня не находит мой тест, пишет 0 коллекций, а через кнопки делает успешно, а чем может быть проблема?
А для чего селениум грид, если мы используем playwright? Думаю, если и есть желание так заморочится, то это будет сложнее. Ведь в playwright мы указываем в каком браузере запускать, с помощью аргументов для pytest. Но playwright не умеет обращаться к бразеру по IP.
@@SeniorTester Значит получается так, что он не всегда подходит для использования. У меня проект лежит в репозитории Ажура и там же собирается пайплайн,на ВМ запущено 2 контейнера: Грид и Аллюр Репортс. Естественно весь проект на селениуме. Получается,что переписать текущий проект на плейрайт с такой схемой не выйдет? Мы же в конфтесте указываем настройки браузера и там же параметры удалённого браузера в контейнере. Я к тому,что плейрайт так не умеет пока?
Плейрайт умеет запускать в нескольких браузерах без всяких настроек в коде. То есть, просто-напросто, в большинстве случаев грид не нужен. Но если нужно тестить не на последних версиях браузеров, тогда нужна ферма, но как её лучше обустроить, пока что я не знаю
Интересно) Только не совсем понимаю, зачем использовать пайчарм если есть вскод в котором плейрайт отлично себя чувствует, плюс всякие конфиги, режимы отладки, трассировка, кроссбраузерность)
не правильно сформулировал свои мысли) Полностью согласен, насчет IDE) У вскода есть расширения с помощью которых удобно взаимодействовать с playwright,(такие как запись действий в браузере, trace viewer.) Соответственно, вопрос, можно ли как то это все перетянуть в пайчарм и как с этим взаимодействовать? Благодарю) @@SeniorTester
Очень класснок вступительное видео, а в что по вашему мнению более прогрессивное playwright или selenium, есть ли что-то в чём selenium лучше playwright-а?
Ну есть некоторые вещи, которые в селениуме удобнее и понятнее для новичка, работа с вкладками браузера, например. Но, конечно, в playwright больше функций и это делает его лучше. Но если нужно научиться базовому автотестированию, я бы начинал с selenium, а потом осваивал playwright