webdriverio/examples/bidi
Christian Bromann a2ae35332f
chore: upgrade to Eslint v9 (#13867)
* chore: upgrade to Eslint v9

* fix remaining issues

* more type fixes

* resolve remaining issues

* use wdio eslint package

* PR feedback
2024-12-18 11:55:43 -08:00
..
logging.js (webdriver): improve WebDriver Bidi integration (#11639) 2023-11-12 19:16:06 -08:00
package.json chore(internal): fix all other examples 2024-05-07 18:26:34 -07:00
README.md chore(internal): fix all other examples 2024-05-07 18:26:34 -07:00
scripting.js chore: upgrade to Eslint v9 (#13867) 2024-12-18 11:55:43 -08:00

Bidi Examples

Logging

The following examples show how to capture logs from the browser in real-time:

import { remote } from 'webdriverio'
const browser = await remote({
    logLevel: 'error',
    capabilities: {
        webSocketUrl: true,
        browserName: 'firefox'
    }
})

await browser.sessionSubscribe({
    events: ['log.entryAdded']
})

browser.on('log.entryAdded', (entryAdded) => console.log(JSON.stringify(entryAdded, null, 4)))
await browser.execute(() => console.log('Hello Bidi'))
await browser.deleteSession()

Or listen for network events:

import { remote } from 'webdriverio'
const browser = await remote({
    logLevel: 'error',
    capabilities: {
        webSocketUrl: true,
        browserName: 'chrome'
    }
})

await browser.sessionSubscribe({
    events: ['network.responseCompleted']
})

browser.on('network.responseCompleted', (networkResponse) => console.log(JSON.stringify(networkResponse, null, 4)))
await browser.url('https://webdriver.io')
await browser.deleteSession()

Scripting

The following example shows how to create a preload script:

import { remote } from 'webdriverio'
const browser = await remote({
    logLevel: 'error',
    capabilities: {
        webSocketUrl: true,
        browserName: 'chrome'
    }
})

await browser.scriptAddPreloadScript({
    functionDeclaration: `() => { window.bar='foo'; }`
})

await browser.url('https://webdriver.io')
await browser.pause(2000)
console.log(await browser.execute(() => window.bar))
await browser.deleteSession()