Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Viktigt!
Arbetsutrymmen för dramatiker fjärrserver Model Context Protocol (MCP) är i förhandsvisning. Förhandsgranskningsfunktioner har inget service-nivåavtal och rekommenderas inte för produktionsarbetsbelastningar. Funktioner, begränsningar och tillgänglighet kan förändras.
Arbetsutrymmen för dramatiker fjärrservern MCP ger AI-agenter en hanterad fjärrwebbläsare och en uppsättning verktyg för webbläsarautomatisering. En agent kan öppna en webbläsarsession, navigera bland sidor, hitta och interagera med element, inspektera webbläsaraktivitet, ta skärmdumpar och stänga sessionen. Du behöver inte installera Playwright eller en webbläsare i agentmiljön.
Servern använder Model Context Protocol över strömbärbar HTTP. Den stöder Microsoft Entra ID-autentisering och åtkomsttoken för arbetsutrymmen. Den fungerar med fjärrklienter för MCP, inklusive Microsoft Foundry Agent Service och Visual Studio Code.
I den här artikeln lär du dig att:
- Bygg MCP-endpointen för en Playwright-arbetsyta.
- Autentisera genom att använda Microsoft Entra ID eller en åtkomsttoken för arbetsområdet.
- Koppla servern till Microsoft Foundry Agent Service eller Visual Studio Code.
- Kör kompletta agentiska webbläsarautomatiseringsflöden.
- Välj och använd säkert de tillgängliga webbläsarverktygen.
- Hantera utgångna sessioner, tidsgränser och andra vanliga fel.
Förutsättningar
Innan du kan börja bör du kontrollera att du har:
- Ett Azure-konto med en aktiv prenumeration.
- Ett Playwright-arbetsområde som har tillgång till den fjärrstyrda MCP-förhandsvisningen.
- Arbetsområdets ID och Azure-region.
- En identitet med behörighet att skapa och använda webbläsarsessioner i arbetsytan.
- För Microsoft Foundry, ett Foundry-projekt och behörighet att skapa projektanslutningar och konfigurera agenter.
- För Visual Studio Code, en aktuell version av Visual Studio Code med GitHub Copilot-åtkomst och MCP-stöd aktiverat.
Välj en autentiseringsmetod
Använd Microsoft Entra ID när din MCP-klient stödjer OAuth eller managed identity. Den fjärrstyrda MCP-servern använder denna resursidentifierare och delegerade omfattning:
Resource: https://mcp.playwright.microsoft.com
Scope: https://mcp.playwright.microsoft.com/Playwright.Mcp.Tools
Servern publicerar OAuth-metadata för skyddade resurser. Klienter som har stöd för OAuth-identifiering, inklusive Visual Studio Code, kan identifiera auktorisationsservern och det nödvändiga behörighetsomfånget från den arbetsyteavgränsade MCP-slutpunkten. Den inloggade identiteten måste ha tillgång till Playwrights arbetsyta via Azure rollbaserad åtkomstkontroll (RBAC).
Varning
Använd en åtkomsttoken för arbetsområdet endast när MCP-klienten inte kan autentisera med Microsoft Entra ID. Åtkomsttokens är mindre säkra och inaktiveras som standard.
Skapa en åtkomsttoken för arbetsområdet för kompatibilitet
Hoppa över denna sektion när du använder Microsoft Entra ID. Om åtkomsttoken-autentisering inte redan är aktiverad för arbetsytan:
- Logga in på Azure-portalen.
- Öppna din Playwright-arbetsplats.
- Under Inställningar, välj Åtkomsthantering.
- Aktivera Playwright Service Access Token.
- Välj Generera token.
- Ange ett namn och utgångsdatum och generera sedan token.
- Kopiera token omedelbart. Du kan inte återfå dess värde senare.
Lagra token i en hanterad hemlig lagring eller i den säkra inloggningsfunktionen som tillhandahålls av din MCP-klient. Återkalla och ersätta den om den kan ha varit exponerad. För att skapa en åtkomsttoken för arbetsytan, se Hantera åtkomsttoken för arbetsytan.
Caution
Behandla en åtkomsttoken för arbetsområdet som ett lösenord. Sätt aldrig in den i versionskontroll, inkludera den i en prompt eller skriv den till loggar.
Bygg den fjärrstyrda MCP-endpointen
Slutpunkten är begränsad till en arbetsyta och region:
https://<region>.mcp.playwright.microsoft.com/playwrightworkspaces/<workspace-id>/mcp
Replace:
-
<region>med arbetsytans Azure-region. -
<workspace-id>med det arbetsyte-ID som visas i Azure-portalen.
Ett exempel:
https://eastus.mcp.playwright.microsoft.com/playwrightworkspaces/00000000-0000-0000-0000-000000000000/mcp
Värdet i begärandehuvudet x-api-key måste vara en åtkomsttoken som har skapats för samma arbetsyta som <workspace-id>. Använd endpointen för arbetsytans region, inte den region som ligger närmast MCP-klienten.
Förstå webbläsarens sessionslivscykel
Ett webbläsarautomatiseringsflöde har tre steg:
- Ringa
create_browser_session. Resultatet innehåller en ogenomskinligbrowserSessionIdoch kan innehålla en live-view-URL. - Skicka det
browserSessionIdtill alla webbläsarverktyg som används i flödet. - Anropa
close_browser_sessioni ett rensningssteg, även om flödet misslyckas.
MCP HTTP-transporten bevarar inte webbläsarens tillstånd.
browserSessionId identifierar fjärrwebbläsaren mellan separata verktygsanrop. Håll det privat och använd det endast med den arbetsyta och identitet som skapade det.
Nuvarande förhandsgranskningsbeteende inkluderar dessa begränsningar:
- En session tillhör sin skapare och kan inte delas med en annan rektor.
- Samtal i en session behandlas i ordning. Vidta inte samtidiga åtgärder mot samma session.
- En inaktiv session städas upp efter 15 minuter. Tydlig sanering krävs.
- En sluten eller utgången session kan inte öppnas igen.
- Om anslutningen bryts avslutas sessionen. Skapa en ny session för att fortsätta.
- Ett resultat kan innehålla en
liveViewUrl. Tillgängligheten för live-visning beror på sessionen.
Koppla upp dig från Microsoft Foundry Agent Service
Använd Microsoft Entra Agent Identity för att autentisera agenten med Foundry-projektets hanterade identitet. Ge den identiteten tillgång till Playwright-arbetsytan innan du kopplar in MCP-verktyget.
Skapa projektanslutningen
- Öppna ditt projekt i Microsoft Foundry-portalen.
- Öppna projektets hanteringsvy och välj sedan Anslutna resurser.
- Skapa en anslutning för en fjärr-MCP-server.
- Ange ett beskrivande kopplingsnamn, såsom
playwright-mcp-connection. - Välj Microsoft Entra Agent Identity som autentiseringsmetod.
- Ange
https://mcp.playwright.microsoft.comsom målgrupp. - Spara anslutningen.
Projektets hanterade identitet måste ha en roll som tillåter webbläsarsessionsoperationer på det målinriktade Playwright-arbetsytet. Använd inte en identitetstoken från ett projekt som en delad hemlighet i ett annat projekt.
Om Microsoft Entra Agent Identity inte är tillgänglig för klienten eller miljön, skapa en Custom Keys-anslutning med en nyckel som heter x-api-key och en åtkomsttoken för arbetsområdet som dess värde.
Lägg till fjärr-MCP-verktyget
Skapa eller öppna en agent i Foundry-portalen.
Lägg till en fjärr-MCP-server eller MCP-verktyg.
Använd följande inställningar:
Setting Value Serveretikett En unik etikett, såsom playwrightWorkspaceServer-URL Den arbetsytespecifika fjärr-MCP-ändpunkten Projektanslutning Microsoft Entra Agent Identity-anslutningen som skapades tidigare Approval Kräv godkännande för varje samtal när du utvärderar integrationen Tillåtna verktyg Börja med bara de verktyg som behövs för flödet Spara agentkonfigurationen.
I agentinstruktionerna krävs att agenten skapar en session, återanvänder dess
browserSessionId, och stänger sessionen när uppgiften är klar.
En minimal verktygslista för tillåtelse av ett läsorienterat navigeringsflöde är:
create_browser_session
browser_navigate
browser_snapshot
browser_find
browser_take_screenshot
close_browser_session
Lägg till interaktionsverktyg som browser_click eller browser_type endast när scenariot kräver det. Aktivera inte browser_evaluate eller browser_run_code som standard.
Testa gjuteriets flöde
Använd en prompt som anger målet och saneringskravet. Ett exempel:
Create a browser session, open https://example.com, inspect the page snapshot,
report the main heading and destination URL, and close the browser session.
Always close the session, including when a browser step fails.
När agenten begär godkännande:
- Verifiera att serveretiketten är den konfigurerade Playwright-servern.
- Gå igenom verktygets namn och alla argument, särskilt URL:er, väljare, text, uppladdad data och kod.
- Godkänn endast den förväntade operationen.
- Kontrollera att det slutgiltiga svaret baseras på sidresultatet.
- Bekräfta att flödet kallades
close_browser_session.
För aktuella Foundry-anslutningsfält, godkännandehantering, SDK-exempel och klientgränser, se Koppla agenter till MCP-serverns ändpunkter.
Note
Foundrys icke-strömmande MCP-verktygsanrop har för närvarande en 100-sekunders klienttimeout. Vissa Playwright-åtgärder har en längre timeout på tjänstsidan. Håll Foundry-verksamheten fokuserad och dela upp långa arbetsflöden i flera verktygssamtal.
Ansluta från Visual Studio Code
Visual Studio Code kan upptäcka fjärrserverns OAuth-konfiguration och logga in dig med Microsoft Entra ID. Konfigurationen behöver endast den arbetsytsbegränsade ändpunkten.
- I Visual Studio Code, kör MCP: Open User Configuration från kommandopaletten.
- Lägg till följande konfiguration och byt ut slutpunktsplatshållarna.
{
"servers": {
"playwrightWorkspace": {
"type": "http",
"url": "https://<region>.mcp.playwright.microsoft.com/playwrightworkspaces/<workspace-id>/mcp"
}
}
}
- Starta servern från konfigurationsredigeraren eller kör MCP: List Servers.
- När du blir tillfrågad, logga in med det Microsoft Entra-konto som har tillgång till Playwrights arbetsyta.
- Godkänn det begärda
Playwright.Mcp.Toolstillståndet om samtycke krävs för din hyresgäst. - Gå igenom serverns URL och konfiguration, och bekräfta sedan att du litar på servern.
- Öppna chatten och välj Konfigurera verktyg. Aktivera endast de verktyg som dramatikern behöver för uppgiften.
- Kör exempelprompten från föregående Foundry-sektion.
- Gå igenom verktygsbekräftelser och verifiera att sessionen är avslutad i slutet.
Använd en användarkonfiguration när anslutningen är personlig. En arbetsytskonfiguration som endast innehåller slutpunkten kan delas. Visual Studio Code cachar OAuth-uppgifterna säkert och kan återanvända dem vid återanslutning.
Om Microsoft Entra-autentisering inte är tillgänglig i klientmiljön konfigurerar du ett x-api-key-huvud med skyddad indata enligt beskrivningen i MCP-konfigurationsindata. Sätt aldrig workspace access-token-värdet direkt i mcp.json.
För konfigurationsplatser, hemliga indata, serverförtroende och diagnostik, se Add and manage MCP-servrar i Visual Studio Code och MCP-konfigurationsreferensen.
Designa ett agentiskt automationsflöde
Använd en observera–agera–verifiera-loop i stället för att be agenten utföra en lång sekvens utan att kontrollera sidans tillstånd.
-
Skapa: Anropa
create_browser_sessionoch behåll dessbrowserSessionId. -
Navigera: Ring
browser_navigatemed en explicit, godkänd URL. -
Observera: Kräv
browser_finden fokuserad sökning ellerbrowser_snapshoten bredare tillgänglighetsbild. - Agera: Använd en snapshot-referens eller unik väljare med ett interaktionsverktyg.
-
Vänta: Anropa
browser_wait_forför förväntad text, försvinnande text eller en begränsad fördröjning. - Verifiera: Ta en annan ögonblicksbild eller inspektera konsol- och nätverksaktivitet.
- Hantera förgreningar: Hantera en dialog, byt flik eller ladda upp filer endast när sidans tillstånd kräver det.
-
Fånga bevis: Ring
browser_take_screenshotom ett visuellt resultat är användbart. Använd inte skärmdumpar för att välja actionmål. -
Rensa upp: Anropa
close_browser_sessioni en rensningssökväg av finally-typ.
Välj stabila aktionsmål
Föredra referenser som returneras av browser_snapshot eller browser_find. De beskriver tillgängliga sidelement och minskar beroendet av implementationsspecifik markering. Använd en unik selector när en stabil snapshot-referens inte finns tillgänglig.
Uppdatera ögonblicksbilden efter navigering eller efter en åtgärd som ändrar sidan. Ett tidigare returnerat målobjekt kan bli inaktuellt när sidan renderas om.
Hantera dialoger säkert
En åtgärd kan returnera ett dialog-opened utfall efter att den redan har ändrat sidtillståndet. Det här resultatet är inte ett vanligt åtgärdsfel.
- Upprepa inte den ursprungliga handlingen.
- Ring
browser_handle_dialogmedacceptinställd påtrueellerfalse. - För en promptdialog, inkludera
promptTextendast när du accepterar den. - Titta på sidan igen innan du fortsätter.
Hantera otydliga fel
En timeout eller en frånkopplad uppringare bevisar inte att en åtgärd inte hade någon effekt. Innan du försöker igen en icke-idempotent operation som klick, formulärinlämning, uppladdning eller kodexekvering:
- Använd
browser_snapshot,browser_findeller något annat observationsverktyg om sessionen fortfarande är tillgänglig. - Ta reda på om den förväntade statusändringen har inträffat.
- Försök om endast om det är säkert att upprepa handlingen.
- Om sessionen har gått ut, skapa en ny session och starta om från ett känt applikationstillstånd.
Verktygsreferens
Alla webbläsarbaserade verktyg kräver browserSessionId. Sträng- och samlingsgränser som visas här är aktuella förhandsgranskningsgränser.
Sessionsverktyg
| Tool | Parameters | Använd |
|---|---|---|
create_browser_session |
None | Skapar en fjärrwebbläsare och returnerar browserSessionId och en valfri liveViewUrl. |
close_browser_session |
browserSessionId |
Stänger den fjärrstyrda webbläsarsessionen. Säg det under städningen. |
Navigations- och observationsverktyg
| Tool | Parameters | Användning och viktigt beteende |
|---|---|---|
browser_navigate |
browserSessionId, url |
Navigerar till en URL. URL:en kan innehålla upp till 16 KiB tecken. |
browser_navigate_back |
browserSessionId |
Navigerar till föregående post i sidhistoriken. |
browser_snapshot |
browserSessionId; valfritt target, depth, boxes |
Returnerar en ögonblicksbild av tillgänglighetsinformationen.
target tar emot en snapshot-referens eller unik selektor.
Depth är 1-100.
Boxes inkluderar begränsningsboxdata när det stöds. Ögonblicksbildstext trunkeras till 64 KiB och markeras som trunkerad. |
browser_find |
browserSessionId, text |
Utför en mellanlägesoberoende substrängsökning av tillgänglighetsögonblicksbildssnittet och returnerar matchande utdrag.
Text kan innehålla upp till 4 096 tecken. |
browser_wait_for |
browserSessionId; exakt en av text, textGone, eller time |
Väntar på sms, väntar på att texten ska försvinna, eller väntar 0–180 sekunder. |
browser_take_screenshot |
browserSessionId; valfritt target, type, fullPage, scale |
Returnerar en inline-PNG eller JPEG.
Type är png eller jpeg.
FullPage fångar hela sidan istället för standardvyn.
Scale är css eller device. Använd en snapshot, inte bilden, för att välja mål. |
browser_console_messages |
browserSessionId |
Returnerar begränsade konsolmeddelanden som fångats för den aktiva sidan. |
browser_network_requests |
browserSessionId |
Returnerar begränsad nätverksförfrågningsinformation som fångats för den aktiva sidan. |
Interaktionsverktyg
| Tool | Parameters | Användning och viktigt beteende |
|---|---|---|
browser_click |
browserSessionId, target; valfritt button, doubleClick, modifiers |
Klickar på ett objekt.
Button är left, righteller middle. Accepterar upp till fem modifierare från Alt, Control, , ControlOrMeta, Metaoch Shift. Försök inte blint igen med ett klick som fick timeout. |
browser_type |
browserSessionId, target, ; textvalfritt submit, slowly |
Anger text i ett redigerbart element.
Submit trycker Enter efteråt.
Slowly skriver sekventiellt. |
browser_fill_form |
browserSessionId, fields |
Fyller 1–50 fält. Varje fält innehåller target, en sträng eller boolesk value, och valfritt name och type. Ett misslyckande kan lämna tidigare fält uppdaterade. |
browser_press_key |
browserSessionId, key |
Trycker på en Playwright-tangentbeskrivning som Enter, ArrowLeft eller Control+C. |
browser_select_option |
browserSessionId, target, values |
Väljer 1–100 optionsvärden. Varje värde kan innehålla upp till 4 096 tecken. |
browser_hover |
browserSessionId, target |
Hovrar över ett mål, vilket kan visa menyer eller verktygstips. |
browser_handle_dialog |
browserSessionId, accept; valfritt promptText |
Accepterar eller avvisar den webbläsardialog som för närvarande blockerar. |
browser_drag |
browserSessionId, startTarget, endTarget |
Drar ett objekt från ett mål till ett annat. Båda målen måste lösas på den aktiva sidan. |
Flikar, filer och kodverktyg
| Tool | Parameters | Användning och viktigt beteende |
|---|---|---|
browser_tabs |
browserSessionId, action; valfritt index, url |
Listar, skapar, väljer eller stänger flikar.
action är list, new, select, eller close.
index krävs för select; för close, utelämnande betyder den aktiva fliken. Index är nollbaserade. |
browser_file_upload |
browserSessionId, files; valfritt target |
Laddar upp 1–20 base64-kodade filer via en målfilinmatning eller väntande filväljare. Se filuppladdningsgränser. |
browser_evaluate |
browserSessionId, function; valfritt target |
Utvärderar en JavaScript-funktion på sidan eller mot ett mål. Den kan läsa eller ändra sidstatus. |
browser_run_code |
browserSessionId, code |
Kör en Playwright JavaScript-funktionskropp med åtkomst till sidan. Detta verktyg har högst privilegium och kan ge godtyckliga bieffekter. |
Efter varje automatiseringsarbetsflöde anropar du close_browser_session med den aktiva browserSessionId.
Formfältets form
Varje browser_fill_form fält har denna form:
{
"target": "<snapshot-reference-or-selector>",
"value": "<string-or-boolean>",
"name": "<optional-display-name>",
"type": "<optional-field-type>"
}
Strängvärdet för ett fält kan innehålla högst 100 KiB tecken.
name kan innehålla högst 1 024 tecken och type kan innehålla högst 128 tecken.
Filuppladdningsform
Varje browser_file_upload fil använder denna form:
{
"name": "example.txt",
"data": "SGVsbG8sIHdvcmxkIQ==",
"mimeType": "text/plain"
}
mimeType är valfritt och standardvärdet application/octet-streamär .
Filuppladdningsbegränsningar
- 1–20 filer per verktygsanrop.
- 10 MiB maximal avkodad storlek för varje fil.
- 50 MiB maximal sammanlagd avkodad storlek.
- Filnamn på maximalt 4 096 tecken.
- 1 024 tecken maximal MIME-typ.
- Giltig base64-data krävs.
JavaScript-verktygsformer
För browser_evaluate, ange ett funktionsuttryck:
() => document.title
När du tillhandahåller target, får funktionen det matchande elementet:
element => element.textContent
För browser_run_code, pass-satser som utgör funktionskroppen i en asynkron funktion med en Playwright-sida som page-parameter. Returnera endast data som kan serialiseras med JSON och håll det inom gränsen för inline-svar.
Varning
browser_evaluate och browser_run_code kan exponera siddata, ändra applikationsstatus och göra nätverksförfrågningar.
browser_run_code är ekvivalent med godtycklig kodexekvering inom den isolerade webbläsarmiljön. Inaktivera dessa verktyg om inte ett granskat scenario kräver dem. Skicka aldrig hemligheter genom kod eller returnera känslig siddata till en opålitlig modell.
Gränser och nuvarande beteende
| Limit | Aktuellt värde | Rekommenderad åtgärd |
|---|---|---|
| Inaktiv webbläsarsession | 15 minuter | Stäng sessioner explicit och skapa en ny session efter utgång. |
| Begärd väntetid | 180 sekunder | Föredra delstatsbaserade väntetider framför fasta förseningar. |
| Tidsgräns för tjänstkommando | 3 minuter och 30 sekunder | Observera sidläget innan du försöker göra en åtgärd igen. Klientens tidsgränser kan vara kortare. |
| Svar i löpande text | 1 MiB | Returnera eller begär endast den data som behövs för nästa steg. |
| Tillgänglighetsögonblickstext | 64 KiB | Använd browser_find, ett måldelträd eller ett mindre djup när utdata trunkeras. |
| Inbäddade skärmdumpsdata i base64 | 768 KiB | Använd JPEG, en skärmdump av visningsområdet eller ett specifikt element om en skärmdump är för stor. |
| URL-parameter | 16 KiB-karaktärer | Använd en giltig absolut destinations-URL. |
| Mål eller selektor | 4 096 tecken | Föredra koncisa snapshot-referenser eller unika selektorer. |
| JavaScript-funktion eller kod | 1 MiB-karaktärer | Håll koden liten, granskad och snävt avgränsad. |
| Webbläsarsession-ID | 256 tecken | Skicka vidare värdet som returneras av create_browser_session oförändrat. |
Svaren returneras infogade. Denna förhandsversion tillhandahåller inte MCP-resurser eller beständig lagring av artefakter för stora ögonblicksbilder, skärmdumpar eller nedladdningar. Webbläsare, operativsystem, viewport, lokal- och användaragent-överskrivningar exponeras inte som sessionsskapandeparametrar.
Felhantering
Ett verktygsfel inkluderar en stabil felkod, ett kundsäkert meddelande, ett retryable värde och korrelationsinformation. Använd det returnerade retryable värdet som primär signal, tillsammans med operationens bieffekter.
| Felkod | Meaning | Action |
|---|---|---|
Unauthorized |
Åtkomsttoken saknas, är ogiltig, utgången, inaktiverad eller för en annan arbetsplats. | Kontrollera x-api-key, om åtkomsttoken är aktiverade för arbetsytan, tokenets utgångstid och slutpunktens arbetsyte-ID. Försök inte igen med samma ogiltiga behörighet. |
Forbidden |
Tokenägaren saknar tillstånd, eller så äger inte anroparen sessionen. | Verifiera åtkomst till arbetsytan och använd samma legitimation under hela sessionen. |
SessionNotFound |
Sessionen existerar inte. | Skapa en ny session. |
SessionClosed |
Sessionen var avslutad. | Skapa en ny session om mer arbete krävs. |
SessionExpired |
Sessionen eller dess webbläsaranslutning är inte längre tillgänglig. | Skapa en ny session och starta om från ett känt tillstånd. |
BrowserUnavailable |
Webbläsarens kapacitet eller fjärrwebbläsare är tillfälligt otillgänglig. | Försök skapa sessioner igen efter en fördröjning om det retryable är sant. |
DependencyUnavailable |
En obligatorisk tjänst är tillfälligt otillgänglig. | Försök igen med exponentiell backoff om retryable är sant. |
InvalidArgument |
En parameter saknas, är missbildad, ömsesidigt inkompatibel eller ligger utanför sina gränser. | Rätta argumenten. Försök inte igen om inget har ändrats. |
UnsupportedOperation |
Den begärda åtgärden stöds inte. | Använd ett stödd verktyg eller argumentvärde. |
OutputTooLarge |
Resultatet överskrider gränsen för inline-respons. | Begär en mindre ögonblicksbild eller resultat. För skärmdumpar, använd JPEG eller en mindre målstorlek. |
ToolTimeout |
Operationen överskred sin tjänstetid. | Om sessionen fortfarande är tillgänglig, observera sidan innan du bestämmer om du vill försöka igen. |
NavigationFailed |
Navigeringen kunde inte slutföras. | Verifiera URL:en, nätverksåtkomst och sidans beteende. Observera den aktuella sidan innan du försöker igen. |
ElementNotFound |
Målet motsvarade inte något element. | Uppdatera snapshoten och använd en aktuell referens eller unik selector. |
ActionFailed |
Sidan avvisade eller kunde inte slutföra en åtgärd. | Inspektera sidans tillstånd. Elementet kan vara dolt, inaktiverat, lossat eller blockerat av en dialog. |
Busy |
Webbläsaren slutför en annan operation eller tömmer ett tidigare svar. | Vänta en kort stund och försök igen endast när det är säkert att upprepa operationen. |
QuotaExceeded |
Arbetsytan eller kontot har uppnått kvoten för webbläsarsessioner. | Stäng oanvända sessioner och granska arbetsytans kvot. |
RateLimited |
Förfrågningar kommer in för snabbt. | Använd exponentiell fördröjning och minska samtidigheten. |
InternalError |
Tjänsten stötte på ett oväntat fel. | Försök igen endast när det är indicerat. Inkludera korrelations-ID när du kontaktar supporten. |
Hantera vanliga problem
MCP-klienten rapporterar obehörig åtkomst
- Bekräfta att autentisering av access-token är aktiverad för arbetsområdet.
- Bekräfta att tokenet inte har gått ut eller är återkallat.
- Använd det råa tokenvärdet som
x-api-keyvärde. Lägg inte till någotBearerprefix. - Kontrollera att tokenen och slutpunkten tillhör samma arbetsyta.
- Om du kopierade en hemlighet fel, skapa en ny token eftersom du inte kan hämta befintliga värden från portalen.
MCP-klienten rapporterar Förbjudet
- Bekräfta att användaren som är kopplad till tokenen fortfarande har behörighet att skapa webbläsarsessioner.
- Använd samma projektanslutning eller token för alla anrop i en webbläsarsession.
- Skicka inte a
browserSessionIdmellan användare, agenter som använder olika inloggningsuppgifter eller arbetsytor.
Verktyg upptäcks inte
- Verifiera hela slutpunkten, inklusive
/playwrightworkspaces/<workspace-id>/mcp. - Kontrollera att regionen för slutpunkten överensstämmer med arbetsytans region.
- Bekräfta att klienten använder en HTTP MCP-transport och skickar
x-api-keyunder upptäckt och verktygsanrop. - I Visual Studio Code, kör MCP: List Servers, välj servern och välj sedan Visa utdata.
- Starta om MCP-anslutningen eller återställ cachade verktyg efter att ha bytt endpoint.
Agenten anropar inte ett webbläsarverktyg
- Säg uttryckligen till agenten att använda den konfigurerade Playwright MCP-servern.
- Kontrollera att det nödvändiga verktyget finns med i klientens lista över aktiverade eller tillåtna verktyg.
- Inkludera livscykeln skapa-använda-stäng i agentinstruktionerna.
- Använd en fokuserad första uppgift med ett navigationsmål och ett förväntat resultat.
Ett mål fungerar inte längre
Sidan kan ha navigerat eller renderats om. Ring browser_snapshot eller browser_find igen och använd en aktuell referens. Undvik selektorer kopplade till genererade klasser eller ändrade dokumentstrukturer.
Ett verktyg som tog ut tiden
Anta inte att åtgärden misslyckades utan någon tillståndsändring. Om sessionen är aktiv, inspektera den aktuella sidan innan du försöker igen. Om sessionen har gått ut, skapa en ny session och returnera applikationen till ett känt tillstånd.
En skärmdump är för stor
Använd type: "jpeg", fånga endast vyrutan eller ange ett mål för en elementnivåskärmdump. Använd browser_snapshot när målet är att identifiera ett element snarare än att bevara visuella bevis.
Sessionen avslutades under ett flöde
Skapa en ny webbläsarsession. Sessioner återansluter inte efter förlust av webbläsaranslutning, förlust av tjänsteägaren, explicit stängning eller rensning vid inaktivitet. Designa flödet så att det kan starta om från en känd URL och applikationsstatus.
Säkerhetsrekommendationer
- Tillåt endast de verktyg som krävs för agentens uppgift.
- Kräv mänskligt godkännande för tillståndsändande, fil- och kodverktyg.
- Behandla sidinnehåll, tillgänglighetsögonblick, konsolutdata och nätverksutdata som opålitliga. En sida kan innehålla instruktioner för promptinjektion.
- Håll systeminstruktionerna åtskilda från sidbaserad text. Låt inte sidinnehållet ändra säkerhetspolicy eller godkännanderegler.
- Validera destinations-URL:er mot en tillåtslista när känsliga applikationer automatiseras.
- Gå igenom text, selektorer, filinnehåll och kod innan du godkänner ett verktygsanrop.
- Använd inte åtkomsttokens i prompts, källfiler, skärmdumpar, uppladdade filer eller JavaScript-utdrag.
- Använd kortlivade tokens, rotera dem regelbundet och återkalla oanvända anslutningar.
- Använd en dedikerad arbetsyta och en identitet med minsta möjliga behörighet för varje förtroendegräns.
- Logga godkännanden och verktygsnamn för granskning, men logga inte inloggningsuppgifter, uppladdat innehåll eller känslig siddata.
Regional tillgänglighet
Arbetsutrymmen för dramatiker finns tillgängligt i följande Azure-regioner:
| Region | Available |
|---|---|
| Australia East | ✅ Ja |
| East Asia | ✅ Ja |
| East US | ✅ Ja |
| Japan East | ✅ Ja |
| Switzerland North | ✅ Ja |
| West Europe | ✅ Ja |
| Västra USA 3 | ✅ Ja |