HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>Теги: тестирование, автоматизация, playwright, puppeter</p>
1 <p>Теги: тестирование, автоматизация, playwright, puppeter</p>
2 <p>При автоматизации тестирования на JavaScript активно используют библиотеки<strong>Puppeter</strong>и<strong>Playwright</strong>, причем последний нередко называют новым поколением Puppeter. В этой заметке мы поговорим о контексте: что это дает и как реализуется на примере обеих библиотек.</p>
2 <p>При автоматизации тестирования на JavaScript активно используют библиотеки<strong>Puppeter</strong>и<strong>Playwright</strong>, причем последний нередко называют новым поколением Puppeter. В этой заметке мы поговорим о контексте: что это дает и как реализуется на примере обеих библиотек.</p>
3 <p>Но прежде -- вспомним пирамиду браузера. В ее основании -- сам веб-браузер. В нем мы можем создавать контекст, ну а в контексте -- открывать страницы. То есть контекст, по сути, напоминает окно Chrome в режиме "Инкогнито".</p>
3 <p>Но прежде -- вспомним пирамиду браузера. В ее основании -- сам веб-браузер. В нем мы можем создавать контекст, ну а в контексте -- открывать страницы. То есть контекст, по сути, напоминает окно Chrome в режиме "Инкогнито".</p>
4 <p>Сам по себе контекст есть в обеих библиотеках. Однако в<strong>Playwright</strong>контекст -- одна из базовых сущностей (на уровне с web-браузером и страницей), поэтому взаимодействовать с ним вам потребуется чаще, к примеру, задавать в нем permissions:</p>
4 <p>Сам по себе контекст есть в обеих библиотеках. Однако в<strong>Playwright</strong>контекст -- одна из базовых сущностей (на уровне с web-браузером и страницей), поэтому взаимодействовать с ним вам потребуется чаще, к примеру, задавать в нем permissions:</p>
5 <p>Кстати, раз уж речь зашла о пермишенах, то в Puppeteer существует метод overridePermissions(), тогда как в Playwright его уже переименовали в grantPermissions().</p>
5 <p>Кстати, раз уж речь зашла о пермишенах, то в Puppeteer существует метод overridePermissions(), тогда как в Playwright его уже переименовали в grantPermissions().</p>
6 <h2>Что дает применение контекста(ов)?</h2>
6 <h2>Что дает применение контекста(ов)?</h2>
7 <p>Ну, к примеру, посредством контекстов у вас получится выполнять сценарии<strong>multi-page</strong>. Допустим, необходимо что-нибудь сделать на 2-х страницах, причем сделать это так, чтобы данные не шерились между собой (те же куки, к примеру). Использование двух контекстов существенно упрощает задачу, то есть вы сможете сделать это без проблем. Кроме того, создание контекста является более быстрым (в несколько раз), чем запуск нового браузера. Согласитесь, профит очевиден.</p>
7 <p>Ну, к примеру, посредством контекстов у вас получится выполнять сценарии<strong>multi-page</strong>. Допустим, необходимо что-нибудь сделать на 2-х страницах, причем сделать это так, чтобы данные не шерились между собой (те же куки, к примеру). Использование двух контекстов существенно упрощает задачу, то есть вы сможете сделать это без проблем. Кроме того, создание контекста является более быстрым (в несколько раз), чем запуск нового браузера. Согласитесь, профит очевиден.</p>
8 <p>Теперь глянем, как изменилось взаимодействия с веб-браузером, страницей и контекстом в<strong>Playwright</strong>, если сравнивать с<strong>Puppeteer</strong>.</p>
8 <p>Теперь глянем, как изменилось взаимодействия с веб-браузером, страницей и контекстом в<strong>Playwright</strong>, если сравнивать с<strong>Puppeteer</strong>.</p>
9 <p>Также можно после запуска веб-браузера сразу выполнить открытие страницы -- тогда контекст создастся автоматически:</p>
9 <p>Также можно после запуска веб-браузера сразу выполнить открытие страницы -- тогда контекст создастся автоматически:</p>
10 <p>Можно ли сократить код еще? Можно, если вы импортируете не Playwright, а сразу нужный вам веб-браузер:</p>
10 <p>Можно ли сократить код еще? Можно, если вы импортируете не Playwright, а сразу нужный вам веб-браузер:</p>
11 <p><em>По материалам https://dou.ua/.</em></p>
11 <p><em>По материалам https://dou.ua/.</em></p>
12  
12