~4 min5 / 12

Browser Activities

Web automation in Genzbots is powered by Playwright and Chrome DevTools Protocol (CDP). There is no separate set of "browser activities" — the same Unified activities (Click, Type Into, Get Text, etc.) that work for desktop also work for web. The difference is the container: wrap web activities inside a Launch Browser container, and Studio automatically routes all child activities through the Playwright/CDP web engine.

Launch Browser (container)

Opens a new Chrome or Edge browser instance and provides the web automation context to all child activities. The browser is closed when the container exits (configurable).

ParameterTypeDefaultDescription
BrowserTypeChrome | EdgeChromeWhich browser to launch
UrlStringURL to navigate to immediately after launch
HeadlessBooleanfalseRun the browser without a visible window
WidthInt321280Browser viewport width in pixels
HeightInt32800Browser viewport height in pixels
CloseBooleantrueClose the browser when the container finishes
BodyActivity sequenceWeb automation activities to run in scope
workflow
1Launch Browser:
2 BrowserType: Chrome
3 Url: "https://portal.example.com"
4 Headless: false
5 Body:
6 Click: Selector: <webctrl tag='BUTTON' innertext='Login'/>
7 Type Into: Selector: <webctrl id='username'/> Text: "{userName{'}'}"
8 Type Into: Selector: <webctrl id='password'/> Text: "{password{'}'}" ClearFirst: true
9 Click: Selector: <webctrl tag='BUTTON' type='submit'/>

Web Selectors

Inside a Launch Browser context, the Selector Editor generates <webctrl> selector segments targeting DOM elements. Supported attributes include:

AttributeExampleMatches
idid='username'HTML id attribute
tagtag='BUTTON'HTML element tag name
typetype='submit'HTML type attribute (inputs, buttons)
classclass='btn-primary'CSS class name (exact match)
namename='email'HTML name attribute
innertextinnertext='Login'Visible text content of the element
csscss='.nav > a:first-child'Full CSS selector (fallback)
playwrightplaywright=text=LoginPlaywright-native selector expression
workflow
1<!-- Standard web selector -->
2<webctrl tag='INPUT' type='email' name='user_email'/>
3 
4<!-- Playwright text selector (more resilient for dynamic text) -->
5<webctrl playwright='text=Submit Order'/>
6 
7<!-- CSS selector for complex DOM structures -->
8<webctrl css='table.data-grid tr:nth-child(2) td:first-child'/>

Attaching to an existing browser

Genzbots can attach to an already-open Chrome/Edge session via CDP auto-discovery. The PlaywrightBrowserService uses 5 strategies in order:

StrategyHow it works
1. Specified portUses the DebugPort parameter if set (e.g., 9222)
2. WMI scanScans running browser processes for --remote-debugging-port argument
3. Common portsTries ports 9222, 9229, 9230 in sequence
4. DevToolsActivePort fileReads Chrome's DevToolsActivePort file from the user-data-dir
5. Extension fallbackConnects via the Genzbots browser extension WebSocket bridge
Attach modeSet Close: false on the Launch Browser container when attaching to an existing session — this prevents Genzbots from closing a browser the user opened manually.

Unified activities inside Launch Browser

All Unified activities from the UI Automation section are available inside Launch Browser. The engine is resolved from the parent scope automatically:

ActivityWeb behaviour
ClickPlaywright locator.click() with auto-scroll and auto-wait
Type IntoPlaywright locator.fill() or locator.type()
Get TextReturns element.innerText or element.textContent
Wait For ElementPlaywright waitForSelector with the given State
Select ItemPlaywright selectOption() on <select> elements
Extract TableReads all <tr>/<td> cells into a DataTable
Take ScreenshotPlaywright page.screenshot()
Execute JavaScriptPlaywright page.evaluate()
Navigate ToPlaywright page.goto()
HoverPlaywright locator.hover()
Send HotkeyPlaywright keyboard.press()
Was this helpful?