Playwright ці браўзерныя агенты? Дзе скрыптовая аўтаматызацыя ўсё яшчэ выйграе
Скрыпты Playwright супраць браўзерных агентаў на MCP: крохкасць, дэтэрмінаванасць і кошт, адна задача з рахункам двума спосабамі, рызыкі бяспекі і калі што перамагае.
Крыніцы: Playwright vs WebMCP: Will Browser Automation Survive the Agent Era?
Інтэрнэт быў створаны для людзей, якія клікаюць на лінкі і чытаюць сторункі. Selenium, Puppeteer і Playwright дазволяюць коду выкананы клікі. Больш чым дзесяць гадоў автаматызацыя прыгледача абяцвалася напісаннем скрыпту, пашырэннем кожнага крока і яго паўтарэннем. Адныя AI-агенты зараз змінююць гэта. Яны можуць разумець, планаваць і дзеяць, і яны працуюць з сторункамі так, як і чалавек: адгледзяць яе, зрозумець ўсё, вырашыць, што далей. Гэта паднімае важлівы вопыт: чы не робіць Model Context Protocol (MCP) скрыптаваную автаматызацыю застарэлай, чы Playwright все ўсё зберагае свае месца?
Чаму распрацоўшчыкі любяць Playwright
Playwright, створаны Microsoft, — гэта саврэменная парадка автаматызацыі прыгледача. Код, напісаны на яе аднойчыну, керуе Chromium, Firefox чы WebKit, каб тыя клікалі на кнопкі, запалнялі формы, збіралі даны і выкананы тэсты з початку да канца. Маленькі прыклад:
const { chromium } = require('playwright');
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto('https://example.com/login');
await page.fill('#email', 'user@example.com');
await page.fill('#password', 'secret');
await page.click('button[type="submit"]');
await page.waitForURL('**/dashboard');
console.log('Logged in!');
await browser.close();
Рэзультат яе чысты, дэтэрміністычны і прыгледны. Звычныя прычыны яе популярнасці:
- Падтрымка разных прыгледачаў ўключана ў саму прыстройку.
- Ізоляцыя тэстаў і паралельныя запускі выконваюцца адлічна надзеямо.
- Функцыя автаматычнага чакання заменяе старыя методы на кшталт
sleep(2000). - Уключаныя можлівасці трэйсінгу, фіксаціі экрана і запісу відэа.
- Яе лёгка ўтрымліваць у практыках CI/CD.
Для аўтаматызацыі пераканання якосці, тэстаў на рэгрэсію і скрыптаваных веб-працэсаў яна ўжо стала стандартам.
Дзе скрыпты ствараюць проблемы
Слабасць — гэта ламкасць. Зменіце назву класа CSS кантрола, і скрыпт перстане працаваць. Перасуньце поле формы, і ён таксама перстане працаваць. Аплікуйце варыант A/B з новым макетам, і ўсё знову не будзе працаваць. Кожны скрыпт — гэта зафіксаваныя правілы, якія базуюцца на прыпусках пра тое, як выглядае сторанка ў певны момент, а інтэрфейсы постаўляюцься ў стані постацейных змян. У компаніі, дзе все развіваецца быстра, падтрымка вялікага набора інструментаў Playwright можа стаць другойю пэўнай зместкай работай.
Паўтарэнне на прыкладзе дапамагае. Скрыпт — гэта картка з інструкцыямі для пераходу па горадзе. Ён працуе, пакуль не закроюцца дорогі, не перасунуцца будынкі чы не з’явіцца однонаправленыя вуліцы. Лепшы навігатор адзірнуцца навакол, прачытае вулічныя знакі і сам вырашыць, куды ідзе.
Што дадае MCP
MCP, які былі прэдставлены компаніей Anthropic у канцы 2024 года, — гэта адкрыты стандарт для структураванага з’яеднання модэляў AI, такіх як Claude, з зовнішнімі інструментамі, джэрамі даных і срэдамі. Ён функцыонуе як універсальная сістэма плагінаў для агентаў. Модэль можа выходзіць за межы вікна чату і доступвацца да баз даных, API, сістэмаў файлаў і веб-браузераў.
Ужо існуе сервер Playwright MCP, які выкладае дзеянні браузера як функцыі, якія можа вызваць агент. Там, дзе распрацоўшчык напісаў бы такі радок:
await page.click('#submit-button');
У агента заместа этага прыходзіць мета:
"Submit the contact form on acme.com with the user's name and email"
З таму ён навігуе, знаходзіць элементы і взаімаецца з сторанкою за дапамою зору, парсінгу HTML і логічных выважэнняў, пры чым няма жадных жорсткаяпраўленых селектараў.
Порэванае выкананне
Playwright, традыцыйны падход
- Контроль: распрацоўшчык пісае кожны крок.
- Селектары: CSS, XPath або тэкст.
- Стойкасць да змян UI: перастае працаваць, калі змініваецца UI.
- Настройка: сярэдняя, адколі трэба код.
- Дэтэрмінізм: абсалютна дэтэрміністычны.
- Адлагоджэнне: проста, за дапамою лог-файлаў і скрыншотаў.
- Скорасць: высокая.
- Косць: толькі вычысленні.
- Найкрашча для: тэстаў на рэгрэсію і пайплайнаў CI/CD.
- Надзяйнасць: высокая, калі ёй стаўляцца належныя умовы.
WebMCP або Playwright MCP, падход з агентам
- Контроль: ШЫ-агент выважае і прыме рашэнні.
- Селектары: нейрамовая мова плюс візуальна аналіза.
- Здатнасць да адаптавацца да змян у інтэрфейсе: адаптуецца пацелаваючы мяркаванне на адпрацоўкі чыннага DOM.
- Настройкі: мінімальныя, адтолькі што дастаткова ўпісваць мету.
- Дэтэрмінізм: недэтэрміністычны, такім чым участвуе мяркаванне LLM.
- Адлагоджэнне: сложнейшае, адтолькі што пытанне стае, чаму агент выбраў тую дзеянне.
- Скорасць: медленнейшая з-за додатковых вітрачэнняў на апрацоўку LLM.
- Косцы: вычысленні плюс токены API LLM.
- Найлепшы для: дынамічных задач, складных рабочых практык і агентаў.
- Надзяйнасць: павышаецца, але ўсё ж не дасягае рэвалюцыйнага рэвэлю.
Адна задача, два методы
Задача: заўісціся на панелі керування SaaS, знайсці найновейшы рахунок і завантажыць яго у фармаце PDF.
За дапамогою Playwright скрыпт пераходзіць на стороннюю старонку заўісці, запоўняе электронную пашту і пароль за дапамогою селектараў data-testid, нажымае кнопку заўісці і продовжае паэтапна.
await page.goto('https://app.saas.com/login');
await page.fill('[data-testid="email"]', credentials.email);
await page.fill('[data-testid="password"]', credentials.password);
await page.click('[data-testid="login-btn"]');
await page.waitForSelector('.dashboard');
await page.click('nav >> text=Billing');
await page.click('.invoice-list tr:first-child .download-btn');
await page.waitForEvent('download');
Разважыце, што будзе, якшо атрыбут data-testid будзе перайменаваны пад час рэфакторавання, якшо навігацыя па рахунках будзе перанесена ў бокавую панель, або якшо таблыца счытакоў будзе структуравана інакша.
З агентам інструкцыя ўскладнена, але ёй можна даць простыя словы-цялі:
Goal: "Go to app.saas.com, log in with my credentials,
navigate to billing, find the most recent invoice,
and download it as a PDF."
Агент завантажвае сторанку, чытае DOM і візуальную структуру, выявляе форму для заходу, запоўняе даны прынтэна і надае ўсё, шукае элементы навігацыі з пазначэнням «Billing», «Invoices» або падобнымі, знаходзіце найновейшы рахунок за датой і клацае на кнопку завантажэння. Калі інтэрфейс змініцца, агент зноў чытае сторанку і прыстосаваецца. Не трэба адкладзіць жадных скрыптаванняў.
З скрыптавання на інструкцыі
Традыцыйная автаматызацыя запытае, якія саме крокі павінен выконаць камп’ютар. Автаматызацыя эры агента запытае, якога рэзультата хочацца і чы можа ШЫ знайсці неабходныя крокі. Можна сказаць так: скрыпты програмуюць шлях, тады як інструкцыі — пункт прызначэння.
Для простых, стабільных, велікага об’ёму задач, такіх як 10 000 тэстаў на рэгрэсію ў CI, дэтэрмінізм Playwright завжды мае перавагу. Для складных, змінных, едыноразовых рабочых працэсаў, якія б выконаў людзкі асістэнт, браузерныя агенты, керованыя праз MCP, вырашаюць пытанне лепшая.
Інструменты, які з’являюцца ў гэтым прасторэ
Экасістэма быстра расце:
- Playwright MCP — офіцыйны сервер MCP, які выкладзець дзеянні браузера Playwright для агентаў AI.
- Stagehand з Browserbase — автаматызацыя, створаная спецыяльна для AI, якая спалюе Playwright з возможнасцю аналізу звурту LLM.
- Browser Use — фрэймворк адкрытага кода для агентаў для перэгляду веб-стороніц.
- Claude Computer Use — сістэма з компаніі Anthropic, якая можа бачыць і кантролаваць цэлы рабочы стол чыста браузер.
- OpenAI Operator — агент GPT-4o, які перэглядае веб-стороніцы, каб выконваць задачы.
- Skyvern — автаматызацыя, якая апыраецца на аналіз звурту і LLM, і не патрабуе наявнасці селектараў.
Гэтыя інструменты — не іграшкі. Компаніі выкарыстоўваюць іх у працэсах закупкаў, выкарыстоўванні дадзенаў, адправцы форм і стэжэнні за конкурэнтамі, працы, якія інакш моглі бы зайняць месцы на месяцы ў разе рэалізацыі за дапамогою скрыптавання.
Чы гэты Playwright знікнёць?
Ня, хоць яго ролі зменшваецца. Ён застаецца важлівым, але больш не ўсёўным інструментам. Ён падобны SQL: фундаментальны, тачны і незаменны для структураванай працы, але больш не ўсёўны спосаб дасягнення рэшэнняў. У будучыні для разных задач будуць вікорыстоўваны якія-то з эўх падходаў.
Выбір межы імі
Рашэнне прыменяецца па прынцыпу схемы прайскурання. Спачатку трэба запытацца, чы задача добра апісана з стабільным UI. Калі так, і яна выконваліцца раз за разам у вялікіх масштабах, як у CI чы рэгрэсійных тэстах, тады спрыткі ўсё, што трэба. Калі UI змініцца чы задача едыноразовая, тады лепей падходзіць агент.
Is the task well-defined with a stable UI?
│
├── YES → Does it run repeatedly at scale (CI/CD, regression)?
│ │
│ ├── YES → Use Playwright
│ └── NO → Either works; Playwright is cheaper
│
└── NO → Is the UI dynamic, unknown, or frequently changing?
│
├── YES → Use MCP Agent / AI Browser
└── NO → Does it require multi-step reasoning?
│
├── YES → Use MCP Agent
└── NO → Use Playwright
Наступныя два гады
Агенты не знікнуць за адну ноч з-за автаматызацыі, але відчуваюцца калькі тэндэнцый.
- Гібрыдныя пайплайны стануць стандартам. Playwright абараняе 80% стабільных, павтаральных задач, а агент MCP берае на сябе 20% неперакладных сітуацый, якія ламаюць скрыпты ў кожным цыклі.
- Playwright атрымуе функцыі ШЫ. Можна спакуяцца на тое, што будзе функцыя відновлення селектараў, калі неякі селектар не працуе, і ён запытае ШЫ пра адпаведны элемент на апцэнаванай сторанцы. Healenium і Reflect ужо робяць нечы такое, і вельмі верагатэльна, што Playwright таксама будзе падтрымляць гэта.
- Надзеянасць агентаў падымаецца. Чыргавыя агенты іноды неправа адыначаюць сторанцу, клікаюць на неправы элемент або страждаюць ад папапаў. Лепшыя мультымадальныя модэлі, такія як GPT-4o, Claude 3.5 Sonnet і Gemini 2.0, магуць значна зменшыць такія проблемы.
- QA змініла свой фармат. Узамест на напісванне скрыптав Playwright, тэстэры будуць выказваць свае намерэнні на натуральнай мове, а агенты будуць іх адначытаць і запускаць, пераходзячы ад напісвання скрыптав да апісвання рэзультатаў.
- Безпека стае актуальным пытаннем. Агент з автонамным кантролем над браузерам можа нажыць на ўсё не тое, запрацаваць форму з некорэктнымі дадзенням або быць маніпульаваным зловучай сторанай. Введэнне коду праз веб-контэнт, калі сторана абманом прыводзіць агента да ненамераваных дзеянняў, ўжо ўважаецца задокументаваным аблікам. У гэтым і крыўціцца галоўная перадчыннасць Playwright — ён рабіць толькі тое, што працавана ў скрыпцы, і нічога больш.
Больш шырокі практычны аспект
Пры гадзіну часу автаматызацыя прыгледача была проблемай перакладу: ператаваць людскія намеры ў код, які імітуюць людскія дзеянні. Playwright чудова яе рашыў. Агенты цяпер не патрабуюць крока перакладу, адколі намеры, выражаны простай мовай, ўсё, што трэба, і агент сам разбіраеся з рэштай. Гэта не робіць Playwright застарэлым. Гэта робіць яго спецыялізаваным, так сама, як хірург і даўжыню выкарыстоўвае скальпель у эпоху робатычнай хірургіі. Скальпель дае точнасць, кантроль і надзею, а робат — возможнасць разбірацца з складнасцямі, адаптабельнасць і масштабнасць. Практычны вопыт больш не ў тым, Playwright проты MCP, а ў тым, калі патрэбен скальпель, а калі — робат.
Супаўзвязаныя матэрыялы
- Паспрацаванне з WebMCP: запявленне інструментаў для AI-агентаў у прыгледніку заместо адгадвання — WebMCP дазволяе веб-сторанцы адзначыць інструменты для AI-агентаў. Як іх зарэўістраваць, адзначыць рызыкі, працаваць з імі ў Chrome і карыстацца мерамі безпекі, а таксама які ў 2026 годзе стан падтрымкі прыгледнікамі.
- Hyperbrowser MCP у працэўным рэжыме: схемы адгукі, транспорт і захоўнія меры — Чым Hyperbrowser MCP забезпечвае агенты прыгледніка, дзе яго стандартныя настройкі HTTP і SSE не падходзяць, а таксама якія політыкі, затверджэнні і кантролі прафіляў вам яшчэ патрэбны.