[{"data":1,"prerenderedAt":635},["ShallowReactive",2],{"blog-playwright-hu":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":13,"about":21,"sources":28,"cover":50,"og":51,"expertise":52,"locales":53,"lang":56,"title":57,"description":58,"coverAlt":59,"metaTitle":60,"takeaways":61,"faq":67,"toc":80,"blocks":105,"others":362},"playwright","2026-05-27",10,"web",[9,10,11,12],"End-to-end testing","Browser automation","MCP","Cross-browser",[4,14,15,16,17,18,19,20],"playwright vs selenium","playwright mcp","browser automation testing","playwright test runner","playwright for ai agents","playwright vs cypress","playwright cloud pricing",[22,25],{"name":23,"url":24},"Playwright","https:\u002F\u002Fplaywright.dev",{"name":26,"url":27},"Model Context Protocol","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FModel_Context_Protocol",[29,32,35,38,41,44,47],{"title":30,"url":31},"Playwright documentation: installation","https:\u002F\u002Fplaywright.dev\u002Fdocs\u002Fintro",{"title":33,"url":34},"Playwright MCP introduction","https:\u002F\u002Fplaywright.dev\u002Fmcp\u002Fintroduction",{"title":36,"url":37},"Playwright CLI introduction","https:\u002F\u002Fplaywright.dev\u002Fagent-cli\u002Fintroduction",{"title":39,"url":40},"Playwright Test agents","https:\u002F\u002Fplaywright.dev\u002Fdocs\u002Ftest-agents",{"title":42,"url":43},"npm package metadata for @playwright\u002Ftest","https:\u002F\u002Fregistry.npmjs.org\u002F@playwright\u002Ftest\u002Flatest",{"title":45,"url":46},"Microsoft Learn: Playwright Workspaces free trial","https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fapp-testing\u002Fplaywright-workspaces\u002Fhow-to-try-playwright-workspaces-free",{"title":48,"url":49},"Azure App Testing pricing","https:\u002F\u002Fazure.microsoft.com\u002Fen-us\u002Fpricing\u002Fdetails\u002Fapp-testing\u002F","\u002Fimages\u002Fblog\u002Fplaywright\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fplaywright\u002Fog.jpg","ai-engineer",[54,55,56],"en","de","hu","Playwright: egy böngésző-API tesztekhez, szkriptekhez és agentekhez","A Playwright a Chromiumot, a Firefoxot és a WebKitet vezéreli egyetlen Apache-2.0-API-ról: tesztfuttató, agentekhez való CLI és MCP-szerver. Mibe kerül, és hol akad el.","Sín három függő négyzettel, mindegyikben más kis forma, balra három nyíl ágazik.","Playwright-teszt: tesztek, szkriptek, agentek · Balázs Csorba",[62,63,64,65,66],"A Playwright Apache-2.0, fizetős kiadás nélkül; a pénz a CI-percekben jelenik meg, illetve opcionálisan a Microsoft Playwright Workspacesben, amely tesztpercenként számláz, másodpercnyi pontossággal, egy 100 perces, 30 napos próbaidő után.","Egy API lefedi a Chromiumot, a Firefoxot és a WebKitet Windows, Linux és macOS alatt, natív mobil emulációval az Android Chrome-hoz és a Mobile Safarihoz.","Az agent-felületek első féltől származnak: 70+ eszközből álló MCP-szerver accessibility snapshotokkal, takarékos CLI állandó daemonnal, valamint planner, generator és healer teszt-agentek.","Az accessibility snapshot a LLM-es döntés: az elemek pixelek helyett refet kapnak, az interakció determinált marad, és nem kell vision modell.","A futtató, nem az API okozza a karbantartási költséget: a projektek, a sharding, a trace-ek és az újrapróbálás ingyenes, de nem gondozásmentes.",[68,71,74,77],{"q":69,"a":70},"Ingyenes a Playwright használata?","A keretrendszer Apache-2.0, fizetős kiadás nélkül. A költség a CI-percekben és a fejlesztői időben jelenik meg, illetve opcionálisan a Azure App Testingen belüli Microsoft Playwright Workspacesben, amely tesztpercenként, másodpercnyi pontossággal számláz egy 100 perces, 30 napos próbaidő után.",{"q":72,"a":73},"MCP-szervert vagy CLI-t használjon az agent?","A dokumentáció a CLI-t helyezi előrébb a coding agenteknél: a tömör kimenetű shell-parancsok nem töltik tele a kontextust tool-sémákkal és accessibility-fákkal. Az MCP olyan felfedező hurkokra való, ahol az állandó állapot és a strukturált paraméterek számítanak; az MCP látható böngészőt nyit, a CLI alapból fej nélkül fut.",{"q":75,"a":76},"Miben más a Playwright, mint a Selenium?","A Playwright saját protokollokon vezérli a böngészőket, és egy API-t, auto-waitinges, web-first assertionöket kínáló futtatót, valamint verzióhoz kötött böngésző-binárokat szállít. A Selenium W3C WebDriveret beszél, ami akkor számít, ha szerződés vagy vendor grid követeli meg, amúgy ragasztóból többe kerül ugyanaz a folyamat.",{"q":78,"a":79},"Képes a Playwright LLM-mel tesztet generálni és javítani?","Igen, első féltől: az npx playwright init-agents planner-, generator- és healer-definíciókat telepít, amelyek Markdown-teszttervet írnak, abból specet készítenek, és a hibás teszteket az újrajátszással és az oldal újravizsgálatával javítják. A healer a szerinte törött tesztet ki is hagyhatja — ésszerű alapértelmezés, de rossz észrevétlenül hagyni.",[81,84,87,90,93,96,99,102],{"id":82,"title":83},"what-it-is","Mi ez",{"id":85,"title":86},"how-it-works","Hogyan működik",{"id":88,"title":89},"getting-started","Első lépések",{"id":91,"title":92},"ai-agents","Agentek a kormánynál",{"id":94,"title":95},"pricing","Árazás",{"id":97,"title":98},"where-it-shingles","Hol nyikorog",{"id":100,"title":101},"verdict","Ítélet",{"id":103,"title":104},"sources","Források",[106,110,118,121,124,142,143,146,152,155,156,171,173,176,190,191,194,196,214,217,220,230,231,234,244,247,248,251,307,310,311,314,326,330,331],{"type":107,"content":108},"paragraph",[109],"A Playwright a Microsoft böngésző-automatizálása, mára pedig egy repóban három termék: egy tesztfuttató, egy szkriptelő könyvtár és egy agent-felület MCP-szerverből és parancssori eszközből. Apache-2.0, nincs fizetős kiadása, és továbbra is a kategória legkényelmesebb API-ja. Ennek az értékelésnek az álláspontja: az új end-to-end munka alapértelmezése — és az agent-felületek az oka, hogy a meglévő suite-ot érdemes újranézni.",{"type":107,"content":111},[112,113,117],"A Seleniummel, a Cyressszel és a Puppeteerrel versenyez, és egyre inkább a kézzel írt scraping- és QA-szkriptekkel, mert ugyanaz a ",{"tag":114,"children":115},"code",[116],"page"," objektum szolgálja ki a CI-beli tesztet, az éjszakai riportot és azt az LLM-et, amely accessibility snapshotokon át vezeti a böngészőt. A mag semmilyen része nem igényel modellt: az agent-eszközök ráülnek, és figyelmen kívül hagyhatók — ezért vezetnek be csapatok előbb teszt-eszközként, és csak később fedezik fel az agent-réteget.",{"type":119,"level":120,"id":82,"text":83},"heading",2,{"type":107,"content":122},[123],"A projekt Chromium-, Firefox- és WebKit-automatizálást szállít Windows, Linux és macOS alatt, helyben vagy CI-ben, fej nélkül vagy láthatóan, natív mobil emulációval az Android Chrome-hoz és a Mobile Safarihoz. A jelenlegi sorozat 1.63, 2026 szeptemberében kiadva, a böngésző-binárok pedig ehhez a kiadáshoz vannak rögzítve.",{"type":125,"ordered":126,"items":127},"list",false,[128,130,132,134,136,138,140],[129],"Apache-2.0 fizetős kiadás nélkül; az npm-csomag Node 20-as vagy újabb verziót ír elő.",[131],"Egy API négy nyelven: JavaScript és TypeScript, Python, Java és .NET.",[133],"Tesztfuttató auto-waitinggel, web-first assertionökkel, fixture-ökkel, párhuzamos projektekkel, shardinggal, újrapróbálással és HTML-jelentéssel.",[135],"A böngészőkontextusok minden tesztnek friss profilt adnak, így a belépési állapot fixture, nem megosztott globális.",[137],"Eszközök a futás köré: codegen, UI mód, trace-nézegető, hálózati mocking, óra-szabályozás és aria snapshotok.",[139],"Kiadásonként hivatalos kontenerképek, amelyek miatt a CI böngészői megegyeznek a helyiekkel.",[141],"Három agent-felület: MCP-szerver, installálható skillökkel rendelkező CLI, valamint planner, generator és healer teszt-agentek.",{"type":119,"level":120,"id":85,"text":86},{"type":107,"content":144},[145],"A meghajtó minden böngészővel saját protokollon beszél — patchelt Chromium- és Firefox-buildek, plusz egy patchelt WebKit —, éppen ezért kínálhatja ugyanazt az egy API mindhárom motoron, a legkisebb közös nevező helyett. A lokátorok az akció végrehajtásakor oldódnak fel, minden akció pedig megvárja, hogy az elem működjön; a flaky teszt szokásos javítása így assertion, nem sleep.",{"type":147,"src":148,"alt":149,"wide":150,"caption":151},"image","\u002Fimages\u002Fblog\u002Fplaywright\u002Fdiagram-7.webp","Playwright-tesztfutás Egy spec fájl a futtatóhoz kerül, amely a teszteket böngészőprojektekre teríti. Egy meghajtó a Chromiumot, a Firefoxot és a WebKitet szólítja meg, minden teszt friss böngészőkontextusban fut, a jelentés pedig gyűjti a trace-eket. A snapshotok és az agent-felületek ugyanennek a meghajtónak alá vannak akasztva.",true,"Egy meghajtó, három motor, és ugyanaz a page API a CI-beli teszthez, az éjszakai szkripthez és az agenthez.",{"type":107,"content":153},[154],"A meghajtó felett ül a futtató, ahol az érték java része keletkezik: egy konfigurációs fájl deklarálja a projekteket — böngészők, viewportok, hitelesítések —, a teszteket workerok között osztják el, a sharding gépekre bontja őket, és minden hibához tartozik egy lépésenként visszajátszható trace. Ez a trace teszi lehetővé a támogatott diagnózist is, mert strukturált adat, nem egy stack trace képernyőképe.",{"type":119,"level":120,"id":88,"text":89},{"type":107,"content":157},[158,159,162,163,166,167,170],"Egy scaffold, egy install, egy futás: a ",{"tag":114,"children":160},[161],"npm init playwright@latest"," megírja a konfigurációt és az első spect, az ",{"tag":114,"children":164},[165],"npx playwright install --with-deps"," letölti a rögzített böngésző-binárokat a rendszerkönyvtárakkal, a ",{"tag":114,"children":168},[169],"npx playwright test"," pedig fej nélkül és párhuzamosan fut mindhárom motoron.",{"type":114,"code":172},"import { test, expect, devices } from '@playwright\u002Ftest';\n\ntest('order confirmation shows a number', async ({ page }) => {\n  await page.goto('\u002Fcheckout');\n  await page.getByLabel('Email').fill('qa@example.com');\n  await page.getByRole('button', { name: 'Place order' }).click();\n  await expect(page.getByRole('status')).toContainText(\u002FOrder WS-\\d+\u002F);\n});\n\ntest.describe('phone', () => {\n  test.use({ ...devices['iPhone 15'] });\n  test('checkout renders on a phone viewport', async ({ page }) => {\n    await page.goto('\u002Fcheckout');\n    await expect(page.getByRole('heading', { name: 'Checkout' })).toBeVisible();\n  });\n});",{"type":107,"content":174},[175],"Ami gyorsan öregszik, nem a futtató, hanem a szelektorok. A projekt saját tanácsa: szerepcímke- és címkelokátorokat előnyben részesíteni, az assertionöket web-first módon tartani, hogy az időkorlátig újra ellenőrizzenek egyszeri mintavétel helyett, és hibánál trace-et nyitni, nem a stackből következtetni.",{"type":177,"variant":178,"title":179,"body":180},"callout","tip","Verziófegyelem",[181],[182,183,186,187,189],"A böngészők a kiadáshoz vannak rögzítve, az ",{"tag":114,"children":184},[185],"@playwright\u002Ftest"," frissítése ezért újra az ",{"tag":114,"children":188},[165]," futtatását jelenti: egy 1.62-re épített image nem találja meg a várt binárokat. A csomagot és a böngészőket együtt rögzítse, az agent-definíciókat pedig minden frissítés után generálja újra — a dokumentáció kimondja, hogy minden Playwright-változáskor létre kell őket hozni újra.",{"type":119,"level":120,"id":91,"text":92},{"type":107,"content":192},[193],"Ez az a rész, amely megváltoztatta az eszköz szerepét. A Playwright ma szabványos módja annak, hogy egy nyelvi modell böngészőt vezéreljen, a projekt pedig három utat kínál hozzá, mindet első féltől.",{"type":114,"code":195},"# MCP server: structured tool calls, accessibility snapshots with element refs\n{\n  \"mcpServers\": {\n    \"playwright\": { \"command\": \"npx\", \"args\": [\"@playwright\u002Fmcp@latest\"] }\n  }\n}\n\n# CLI: shell commands for a coding agent, headless by default\nnpm install -g @playwright\u002Fcli\nplaywright-cli open https:\u002F\u002Fexample.com\nplaywright-cli snapshot\nplaywright-cli click e5\n\n# Test agents: planner, generator and healer, installed into the repo\nnpx playwright init-agents --loop=vscode",{"type":125,"ordered":126,"items":197},[198,204,206,212],[199,200,203],"Az MCP-szerver accessibility snapshotokat ad vissza: minden elem olyan reft kap, mint az ",{"tag":114,"children":201},[202],"e5",", így a modell referenciára kattint, nem koordinátát tippel, és vision modell sem kell. A dokumentáció 70+ eszközt listáz, hálózati mocking, storage, tracing és videó capability flag-ek mögött.",[205],"A CLI a takarékos út: tömör kimenet, állandó daemon, hogy a parancsok ne fizessenek böngészőindítást, igény szerint felfedezett skill-ök és a parancsok között állapotot megőrző munkamenetek.",[207,208,211],"A Playwright teszt-agentei — planner, generator és healer — Markdown-teszttervet írnak, abból specet készítenek, a hibás teszteket pedig újrajátszással és az oldal újravizsgálatával javítják; az ",{"tag":114,"children":209},[210],"npx playwright init-agents"," a VS Code, a Claude Code, a Codex és az OpenCode definícióit telepíti.",[213],"A dokumentáció egyenesen kimondja a cserét: az MCP a specializált agentic hurkokra és a felfedező automatizálásra való, a CLI a nagy kódalapokkal dolgozó coding agentekre, a CLI fej nélkül indul, az MCP pedig látható böngészőt nyit.",{"type":107,"content":215},[216],"A token-gazdaság gyakrabban dönt, mint a funkciók. Egy MCP-kör minden lépésben tool-sémákat és friss snapshottölt a kontextusba; egy CLI-parancs egy YAML-snapshot fájljának útját és egy státuszsor adja vissza. Egy hosszú életű agentnél, amelynek végig kell kattintania egy folyamatot, ez a különbség a kontextusba beférő és a beférni nem akaró munkamenet között.",{"type":107,"content":218},[219],"A képernyőképek megvannak — egy eszközhívás, és a vision mód az egérre teszi a koordinátákat —, de pixelenként fogyasztanak tokent, és pontosan azt az egyértelműséget hozzák vissza, amit a snapshot-döntés eltávolított. Az accessibility fa egy összefoglaló, amire a modell cselekedhet; a képernyőkép bizonyíték, amit értelmeznie kell.",{"type":177,"variant":221,"title":222,"body":223},"warn","Az egyik eszköz távoli kódvégrehajtás",[224],[225,226,229],"Az MCP-szerver a ",{"tag":114,"children":227},[228],"browser_run_code_unsafe","-t kínálja, amely tetszőleges JavaScriptet futtat a Playwright szerverfolyamatában; a dokumentáció RCE-ekvivalensnek nevezi, és csak megbízható klienseknek ajánlja bekapcsolni. A fej nélküli böngésző egy óra eszközhívás nélkül automatikusan bezáródik, a látható nem, a bővítmény-kapcsoló pedig olyan böngészőre csatlakozhat, amelyben élő bejelentkezések vannak — előbb a klienseket határolja el, aztán a böngészőt.",{"type":119,"level":120,"id":94,"text":95},{"type":107,"content":232},[233],"A keretrendszer ingyenes, nincs Pro-kiadás, nincs ülőhelyszám és nincs felhasználási mérés. A költség három helyen jelenik meg: a CI-percek, amelyeket a suite eléget, a fejlesztői idő, amely zölden tartja, és — csak ha felügyelt grid kell — a Microsoft első féltől származó felhője.",{"type":125,"ordered":126,"items":235},[236,238,240,242],[237],"Keretrendszer: ingyenes Apache-2.0 alatt, korlátlan projekt és teszt, megújítandó licenc nélkül.",[239],"Playwright Workspaces az Azure App Testingben: használathoz igazodva tesztpercenként, másodpercnyi pontossággal, egy 100 perces, 30 napos próbaidővel; azon túl a workspace átvált a mért csomagra, a közzétett árak pedig régiófüggők.",[241],"A BrowserStackéhez hasonló külső grid-ek párhuzamos munkamenetenként vagy előfizetéssel számláznak, és csak valódi eszkökhöz, tágabb böngészőmátrixhoz vagy megfelelőséghez kellenek.",[243],"A legnagyobb tétel sosem a licenc: a flaky tesztek kivizsgálása és a szelektorok gondozása az ismétlődő költség, és egyik csomag sem fedezi.",{"type":107,"content":245},[246],"Mivel a futtató ingyenes, a migrációs kérdés általában időről szól, nem költségvetésről. A meglévő suite áthozása újraírt szelektorokat, fixture-öket és egyedi parancsokat jelent, a megtérülés pedig a második karbantartási hónappal jön, nem az első zöld buildtel.",{"type":119,"level":120,"id":97,"text":98},{"type":107,"content":249},[250],"A gyengeségek ismertek és nagyrészt elfogadottak. A böngésző-binárok kiadáshoz kötöttek, a frissítés tehát tervezett feladat, amely a CI-image-eket is magával húzza. A futtató szélessége sok felület, mielőtt a csapat bármit is látna a shardingből és a trace-ekből. A WebKit itt patchelt build, nem maga a Safari, így egy Apple-specifikus hiba későn is előbukkannhat. Az CLI- és MCP-réteg pedig elég új, hogy a parancskészletek a minor kiadások között mozduljanak.",{"type":252,"head":253,"rows":261},"table",[254,256,257,259],[255],"",[23],[258],"Selenium",[260],"Cypress",[262,271,280,289,298],[263,265,267,269],[264],"Meghajtó",[266],"Saját protokoll böngészőnként",[268],"W3C WebDriver",[270],"Az oldalba szúrt proxy",[272,274,276,278],[273],"Böngészők",[275],"Chromium, Firefox, WebKit",[277],"Bármely WebDriver-böngésző",[279],"Chrome, Firefox, Edge, Electron",[281,283,285,287],[282],"Futtató",[284],"Beépített: párhuzamosság, sharding, trace",[286],"Önállóan kell vinni",[288],"Beépített, sharding pluginekkel",[290,292,294,296],[291],"Agent-felületek",[293],"MCP, CLI és teszt-agentek",[295],"Közösségi MCP-szerverek",[297],"Közösségi pluginek",[299,301,303,305],[300],"Legjobb illik",[302],"Új suite-ok és agent vezérelt munka",[304],"Régi stack-ek és vendor grid-ek",[306],"Komponensközpontú front-end csapatok",{"type":107,"content":308},[309],"Az őszinte összehasonlítás a hatókörökről szól, nem a minőségről. A Selenium marad a válasz, ha szerződés vagy eszközhálózat követeli meg; a Cypress kényelmes a már belefektetett csapatoknak; a Puppeteer könyvtár, nem keretrendszer, és a szkript méretéhez való. A Playwright azt állítja, hogy egy eszköri mind a négy munkát — ennek a állításnak a karbantartási ára az a böngészőmátrix, amely most a CI-ben fut.",{"type":119,"level":120,"id":100,"text":101},{"type":107,"content":312},[313],"A Playwright a böngésző-automatizálás legerősebb alapértelmezése, az érdekes kérdés pedig már nem az, bevezeti-e valaki, hanem hogy három felületéből melyiket kinek teszi ki.",{"type":125,"ordered":150,"items":315},[316,318,320,322,324],[317],"Vigye be új end-to-end munkához. A futtató, a kontextus-izoláció és a trace-nézegető a második hónaptól térül meg — éppen akkor, amikor a vékonyabb eszkörfajta drágább lesz.",[319],"Vigye be, ha agentnek kell vezérelnie a böngészőt. A refek és szerepek olcsóbbak és determináltabbak a pixeleknél, és a projekt maga gondozza az MCP- és CLI-utakat, nem a közösségre bízza.",[321],"Tervezze be a frissítési ritmust: a néhány hetente új böngésző-binárokat húzó kiadásvonal azt jelenti, hogy a lockfile, az image és a böngészők együtt mozognak, vagy sehogy.",[323],"Tartsa meg a Seleniumot, ahol a WebDriver vagy eszközhálózat szerződéses, és ne írja át a zöld Cypress suite-ot csak azért, mert a másik API szebb.",[325],"Ne kezelje review-ként a teszt-agenteket. A healer kihagyhat egy tesztet, amelyet töröttnek tart — ésszerű alapértelmezés, de rossz észrevétlenül hagyni.",{"type":327,"content":328},"quote",[329],"A böngésző már nem csak az, amit tesztelnek; az is a felület, amelyet egy agent kezel. Azok az eszközök, amelyek strukturált állapotként mutatják — szerepek, refek, szöveg —, jobban öregszenek, mint amelyek pixeleként.",{"type":119,"level":120,"id":103,"text":104},{"type":125,"ordered":150,"items":332},[333,338,342,346,350,354,358],[334],{"tag":335,"href":31,"children":336},"a",[337],"Playwright-dokumentáció: telepítés",[339],{"tag":335,"href":34,"children":340},[341],"Playwright MCP: bevezető",[343],{"tag":335,"href":37,"children":344},[345],"Playwright CLI: bevezető",[347],{"tag":335,"href":40,"children":348},[349],"Playwright teszt-agentek",[351],{"tag":335,"href":43,"children":352},[353],"npm csomagmetaadatok az @playwright\u002Ftesthez",[355],{"tag":335,"href":46,"children":356},[357],"Microsoft Learn: Playwright Workspaces próbaidő",[359],{"tag":335,"href":49,"children":360},[361],"Azure App Testing: díjszabás",[363,437,493,567],{"slug":364,"published":365,"minutes":6,"category":7,"tags":366,"keywords":372,"about":384,"sources":393,"cover":430,"og":431,"expertise":432,"locales":433,"lang":56,"title":434,"description":435,"coverAlt":436},"schema-org-structured-data-b2b-shop","2026-10-17",[367,368,369,370,371],"Schema.org","Structured data","B2B e-commerce","Technical SEO","Nuxt",[373,374,375,376,377,378,379,380,381,382,383],"schema.org b2b shop","product structured data b2b","merchant listing structured data","product snippet vs merchant listing","unitpricespecification referencequantity","productgroup variants structured data","organization schema vatid","b2b prices behind login seo","json-ld nuxt schema org","merchant return policy structured data","mpn gtin structured data",[385,387,390],{"name":367,"url":386},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSchema.org",{"name":388,"url":389},"JSON-LD","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FJSON-LD",{"name":391,"url":392},"Business-to-business","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FBusiness-to-business",[394,397,400,403,406,409,412,415,418,421,424,427],{"title":395,"url":396},"Google Search Central: Introduction to Product structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fproduct",{"title":398,"url":399},"Google Search Central: Merchant listing (Product, Offer) structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fmerchant-listing",{"title":401,"url":402},"Google Search Central: Product snippet structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fproduct-snippet",{"title":404,"url":405},"Google Search Central: Product variant structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fproduct-variants",{"title":407,"url":408},"Google Search Central: Organization structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Forganization",{"title":410,"url":411},"Google Search Central: Merchant return policy structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Freturn-policy",{"title":413,"url":414},"Google Search Central: General structured data guidelines","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fsd-policies",{"title":416,"url":417},"Google Search Central: Generate structured data with JavaScript","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fgenerate-structured-data-with-javascript",{"title":419,"url":420},"Schema.org: Offer","https:\u002F\u002Fschema.org\u002FOffer",{"title":422,"url":423},"Schema.org: UnitPriceSpecification","https:\u002F\u002Fschema.org\u002FUnitPriceSpecification",{"title":425,"url":426},"Unhead: Product schema (defineProduct)","https:\u002F\u002Funhead.unjs.io\u002Fdocs\u002Fschema-org\u002Fapi\u002Fschema\u002Fproduct",{"title":428,"url":429},"Nuxt SEO: Schema.org identity setup","https:\u002F\u002Fnuxtseo.com\u002Fdocs\u002Fschema-org\u002Fguides\u002Fsetup-identity","\u002Fimages\u002Fblog\u002Fschema-org-structured-data-b2b-shop\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fschema-org-structured-data-b2b-shop\u002Fog.jpg","b2b-ecommerce-developer",[54,55,56],"Schema.org strukturált adatok B2B webshopokhoz: bejelentkezés mögötti árak, egységek és változatok","Termék-markup B2B shopokhoz: snippet vagy kereskedői lista, melyik ár, cikkszámok, egységárak, változatok, Organization és SSR Nuxtban.","Terméktéglalap vékony kerettel, alsó kis mezőjét alacsony fal takarja el.",{"slug":438,"published":365,"minutes":439,"category":7,"tags":440,"keywords":445,"about":457,"sources":465,"cover":487,"og":488,"expertise":432,"locales":489,"lang":56,"title":490,"description":491,"coverAlt":492},"ai-assistant-b2b-shop-customer-support",9,[369,441,442,443,444],"AI assistant","Customer support","LLM agents","EU AI Act",[446,447,448,449,450,451,452,453,454,455,456],"ai assistant b2b shop","ai customer support b2b ecommerce","llm chatbot order status","ai agent customer service tools","chatbot liability air canada","klarna ai assistant results","human handoff chatbot design","eu ai act chatbot disclosure","owasp excessive agency","ai support resolution rate","b2b customer portal chatbot",[458,461,464],{"name":459,"url":460},"Customer service","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCustomer_service",{"name":462,"url":463},"Chatbot","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FChatbot",{"name":391,"url":392},[466,469,472,475,478,481,484],{"title":467,"url":468},"Klarna: AI assistant handles two-thirds of customer service chats in its first month (press release, 2024)","https:\u002F\u002Fwww.klarna.com\u002Finternational\u002Fpress\u002Fklarna-ai-assistant-handles-two-thirds-of-customer-service-chats-in-its-first-month\u002F",{"title":470,"url":471},"Entrepreneur: Klarna is hiring customer service agents again, according to its CEO (May 2025)","https:\u002F\u002Fwww.entrepreneur.com\u002Fbusiness-news\u002Fklarna-ceo-reverses-course-by-hiring-more-humans-not-ai\u002F491396",{"title":473,"url":474},"ABA Business Law Today: BC tribunal confirms companies remain liable for information provided by AI chatbot","https:\u002F\u002Fwww.americanbar.org\u002Fgroups\u002Fbusiness_law\u002Fresources\u002Fbusiness-law-today\u002F2024-february\u002Fbc-tribunal-confirms-companies-remain-liable-information-provided-ai-chatbot\u002F",{"title":476,"url":477},"OWASP GenAI Security Project: LLM06:2025 Excessive Agency","https:\u002F\u002Fgenai.owasp.org\u002Fllmrisk\u002Fllm062025-excessive-agency\u002F",{"title":479,"url":480},"OWASP GenAI Security Project: LLM05:2025 Improper Output Handling","https:\u002F\u002Fgenai.owasp.org\u002Fllmrisk\u002Fllm052025-improper-output-handling\u002F",{"title":482,"url":483},"EU AI Act, Article 50: Transparency obligations","https:\u002F\u002Fartificialintelligenceact.eu\u002Farticle\u002F50\u002F",{"title":485,"url":486},"Intercom: Fin pricing and billable outcomes","https:\u002F\u002Ffin.ai\u002Fpricing","\u002Fimages\u002Fblog\u002Fai-assistant-b2b-shop-customer-support\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fai-assistant-b2b-shop-customer-support\u002Fog.jpg",[54,55,56],"AI-asszisztens a B2B webshop ügyfélszolgálatához: eszközök, jogosultságok és átadás embernek","Hogyan építs AI ügyfélszolgálati asszisztenst B2B shophoz: mit automatizálj, eszközök ügyfélkontextusban, átadás embernek, AI Act és mérőszámok.","Magas fal keskeny réssel: nyíl halad át rajta a három négyzetből álló bekerített mezőbe, egy másik lefelé, egy tálca felé mutat.",{"slug":494,"published":365,"minutes":495,"category":7,"tags":496,"keywords":501,"about":513,"sources":523,"cover":560,"og":561,"expertise":562,"locales":563,"lang":56,"title":564,"description":565,"coverAlt":566},"vue-ai-chat-ui-streaming-accessibility",11,[497,371,498,499,500],"Vue","Accessibility","Streaming","AI chat",[502,503,504,505,506,507,508,509,510,511,512],"vue ai chat ui","nuxt llm streaming","sse vs fetch streaming","aria-live streaming text","accessible chat interface","abort fetch stream vue","dompurify markdown llm","role log chat","reduced motion chat ui","wcag 2.2 chat","screen reader streaming",[514,517,520],{"name":515,"url":516},"Web accessibility","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FWeb_accessibility",{"name":518,"url":519},"Server-sent events","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FServer-sent_events",{"name":521,"url":522},"Vue.js","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FVue.js",[524,527,530,533,536,539,542,545,548,551,554,557],{"title":525,"url":526},"MDN: Using server-sent events","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FServer-sent_events\u002FUsing_server-sent_events",{"title":528,"url":529},"MDN: AbortController","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FAbortController",{"title":531,"url":532},"MDN: ReadableStream","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FReadableStream",{"title":534,"url":535},"MDN: TextDecoderStream","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FTextDecoderStream",{"title":537,"url":538},"MDN: ARIA log role","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAccessibility\u002FARIA\u002FReference\u002FRoles\u002Flog_role",{"title":540,"url":541},"W3C: Understanding SC 4.1.3 Status Messages","https:\u002F\u002Fwww.w3.org\u002FWAI\u002FWCAG22\u002FUnderstanding\u002Fstatus-messages.html",{"title":543,"url":544},"W3C WAI: What's new in WCAG 2.2","https:\u002F\u002Fwww.w3.org\u002FWAI\u002Fstandards-guidelines\u002Fwcag\u002Fnew-in-22\u002F",{"title":546,"url":547},"MDN: prefers-reduced-motion","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FCSS\u002F@media\u002Fprefers-reduced-motion",{"title":549,"url":550},"DOMPurify README","https:\u002F\u002Fgithub.com\u002Fcure53\u002FDOMPurify",{"title":552,"url":553},"markdown-it README","https:\u002F\u002Fgithub.com\u002Fmarkdown-it\u002Fmarkdown-it",{"title":555,"url":556},"AI SDK docs: useChat","https:\u002F\u002Fai-sdk.dev\u002Fdocs\u002Fai-sdk-ui\u002Fchatbot",{"title":558,"url":559},"Vue docs: nextTick","https:\u002F\u002Fvuejs.org\u002Fapi\u002Fgeneral.html#nexttick","\u002Fimages\u002Fblog\u002Fvue-ai-chat-ui-streaming-accessibility\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fvue-ai-chat-ui-streaming-accessibility\u002Fog.jpg","vue-nuxt-developer",[54,55,56],"AI-csevegő UI Vue-ban és Nuxtban: akadálymentes streaming","AI-csevegő Vue-ban vagy Nuxtban: fetch-stream, megszakítás és újrapróbálás, biztonságos markdown, aria-live bejelentések, billentyűzet és reduced motion.","Üzenetkártya villogó kurzorral, pontozott vonal hullámokká nyílik, mellette pipa.",{"slug":568,"published":365,"minutes":439,"category":7,"tags":569,"keywords":574,"about":586,"sources":596,"cover":629,"og":630,"expertise":562,"locales":631,"lang":56,"title":632,"description":633,"coverAlt":634},"llm-translation-pipeline-i18n",[570,571,572,497,573],"Translation","i18n","LLM","Localization",[575,576,577,578,579,580,581,582,583,584,585],"llm translation pipeline","icu messageformat placeholders","vue i18n llm translation","translation memory llm","glossary enforcement translation","german informal sie du","hungarian translation quality llm","structured output json translation","machine translation post-editing","locale file validation","cldr plural categories",[587,590,593],{"name":588,"url":589},"Internationalization and localization","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FInternationalization_and_localization",{"name":591,"url":592},"ICU MessageFormat","https:\u002F\u002Funicode-org.github.io\u002Ficu\u002Fuserguide\u002Fformat_parse\u002Fmessages\u002F",{"name":594,"url":595},"Vue I18n","https:\u002F\u002Fvue-i18n.intlify.dev\u002F",[597,599,602,605,608,611,614,617,620,623,626],{"title":598,"url":592},"Unicode ICU User Guide: Formatting Messages",{"title":600,"url":601},"Vue I18n: Message Format Syntax","https:\u002F\u002Fvue-i18n.intlify.dev\u002Fguide\u002Fessentials\u002Fsyntax",{"title":603,"url":604},"Nuxt i18n: Getting started","https:\u002F\u002Fi18n.nuxtjs.org\u002Fdocs\u002Fgetting-started",{"title":606,"url":607},"Unicode CLDR: Plural rules","https:\u002F\u002Fcldr.unicode.org\u002Findex\u002Fcldr-spec\u002Fplural-rules",{"title":609,"url":610},"OpenAI: Structured outputs","https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fguides\u002Fstructured-outputs",{"title":612,"url":613},"DeepL API: Glossaries","https:\u002F\u002Fdevelopers.deepl.com\u002Fdocs\u002Fapi-reference\u002Fglossaries",{"title":615,"url":616},"W3C: Localization vs. internationalization","https:\u002F\u002Fwww.w3.org\u002FInternational\u002Fquestions\u002Fqa-i18n",{"title":618,"url":619},"GNU gettext manual","https:\u002F\u002Fwww.gnu.org\u002Fsoftware\u002Fgettext\u002Fmanual\u002Fgettext.html",{"title":621,"url":622},"RFC 5646: Tags for Identifying Languages","https:\u002F\u002Fwww.rfc-editor.org\u002Frfc\u002Frfc5646",{"title":624,"url":625},"Rat für deutsche Rechtschreibung","https:\u002F\u002Fwww.rechtschreibrat.com\u002F",{"title":627,"url":628},"Microsoft Writing Style Guide","https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fstyle-guide\u002Fwelcome\u002F","\u002Fimages\u002Fblog\u002Fllm-translation-pipeline-i18n\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fllm-translation-pipeline-i18n\u002Fog.jpg",[54,55,56],"LLM-fordítási pipeline i18n-hez: glosszárium, helyőrzők és review","Termék- és weboldalszövegek fordítása LLM-mel úgy, hogy a helyőrzők, a többes szám és a hangnem épen maradjon: glosszárium, ICU üzenetek, QA-ellenőrzések.","Három forráskártya, egy lefordított kártya glosszárium-szalaggal, majd ellenőrzött tábla.",1792261159891]