Skip to content

Commit

Permalink
[JS] move code sample to use mocha
Browse files Browse the repository at this point in the history
  • Loading branch information
harsha509 committed Aug 5, 2024
1 parent 83eda2e commit f20ebda
Show file tree
Hide file tree
Showing 2 changed files with 157 additions and 162 deletions.
162 changes: 0 additions & 162 deletions examples/javascript/test/bidirectional/w3c/log.js

This file was deleted.

157 changes: 157 additions & 0 deletions examples/javascript/test/bidirectional/w3c/log.spec.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@

const assert = require("assert");
const firefox = require('selenium-webdriver/firefox');
const {until, Builder} = require("selenium-webdriver");

let driver

beforeEach(async function () {
driver = new Builder()
.setFirefoxOptions(new firefox.Options().enableBidi())
.build()
})

afterEach(async function () {
await driver.quit()
})

function delay(ms) {
return new Promise((resolve) => setTimeout(resolve, ms))
}

describe('BiDi Logging', function () {
it('can listen to console log', async function () {
let log = null
const handler = await driver.script().addConsoleMessageHandler((logEntry) => {
log = logEntry
})

await driver.get('https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html')
await driver.findElement({ id: 'consoleLog' }).click()

await delay(3000)

assert.equal(log.text, 'Hello, world!')
await driver.script().removeConsoleMessageHandler(handler)
})

it('can remove console log handler', async function () {
let log = null
const handler = await driver.script().addConsoleMessageHandler((logEntry) => {
log = logEntry
})

await driver.script().removeConsoleMessageHandler(handler)

await driver.get('https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html')
await driver.findElement({ id: 'consoleLog' }).click()

await delay(3000)

assert.equal(log, null)
})

it('can listen to javascript error', async function () {
let log = null
const handler = await driver.script().addJavaScriptErrorHandler((logEntry) => {
log = logEntry
})

await driver.get('https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html')
await driver.findElement({ id: 'jsException' }).click()

await delay(3000)

assert.equal(log.text, 'Error: Not working')
assert.equal(log.type, 'javascript')
assert.equal(log.level, 'error')

await driver.script().removeJavaScriptErrorHandler(handler)
})

it('can remove to javascript error handler', async function () {
let log = null
const handler = await driver.script().addJavaScriptErrorHandler((logEntry) => {
log = logEntry
})

await driver.script().removeJavaScriptErrorHandler(handler)

await driver.get('https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html')
await driver.findElement({ id: 'jsException' }).click()

await delay(3000)

assert.equal(log, null)
})

it('can listen to dom mutations', async function () {
let message = null
await driver.script().addDomMutationHandler((m) => {
message = m
})

await driver.get('https://www.selenium.dev/selenium/web/dynamic')

let element = driver.findElement({ id: 'reveal' })
await element.click()
let revealed = driver.findElement({ id: 'revealed' })
await driver.wait(until.elementIsVisible(revealed), 5000)

assert.strictEqual(message['attribute_name'], 'style')
assert.strictEqual(message['current_value'], '')
assert.strictEqual(message['old_value'], 'display:none;')
})

it('can remove to dom mutation handler', async function () {
let message = null
let id = await driver.script().addDomMutationHandler((m) => {
message = m
})

await driver.script().removeDomMutationHandler(id)

await driver.get('https://www.selenium.dev/selenium/web/dynamic')

let element = driver.findElement({ id: 'reveal' })
await element.click()
let revealed = driver.findElement({ id: 'revealed' })
await driver.wait(until.elementIsVisible(revealed), 5000)

assert.strictEqual(message, null)
})

it('can pin script', async function () {
await driver.script().pin("() => { console.log('Hello!'); }")
let log

await driver.script().addConsoleMessageHandler((logEntry) => {
log = logEntry
})

await driver.get('https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html')

await delay(3000)

assert.equal(log.text, 'Hello!')
})

it('can unpin script', async function () {
const id = await driver.script().pin("() => { console.log('Hello!'); }")

let count = 0
await driver.script().addConsoleMessageHandler((logEntry) => {
count++
})

await driver.get('https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html')

await driver.script().unpin(id)

await driver.get('https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html')

assert.equal(count, 1)
})
})


0 comments on commit f20ebda

Please sign in to comment.