Skip to content

Commit 1a18dd7

Browse files
pujaganisandeepsuryaprasad
authored andcommitted
[bidi][js] Add high-level script pinning APIs (SeleniumHQ#14250)
1 parent c513e19 commit 1a18dd7

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed

javascript/node/selenium-webdriver/lib/script.js

+10
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,16 @@ class Script {
112112

113113
await this.#script.removeCallback(id)
114114
}
115+
116+
async pin(script) {
117+
await this.#initScript()
118+
return await this.#script.addPreloadScript(script)
119+
}
120+
121+
async unpin(id) {
122+
await this.#initScript()
123+
await this.#script.removePreloadScript(id)
124+
}
115125
}
116126

117127
module.exports = Script

javascript/node/selenium-webdriver/test/lib/webdriver_script_test.js

+32
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,38 @@ suite(
122122

123123
assert.strictEqual(message, null)
124124
})
125+
126+
it('can pin script', async function () {
127+
await driver.script().pin("() => { console.log('Hello!'); }")
128+
let log
129+
130+
await driver.script().addConsoleMessageHandler((logEntry) => {
131+
log = logEntry
132+
})
133+
134+
await driver.get(Pages.logEntryAdded)
135+
136+
await delay(3000)
137+
138+
assert.equal(log.text, 'Hello!')
139+
})
140+
141+
it('can unpin script', async function () {
142+
const id = await driver.script().pin("() => { console.log('Hello!'); }")
143+
144+
let count = 0
145+
await driver.script().addConsoleMessageHandler((logEntry) => {
146+
count++
147+
})
148+
149+
await driver.get(Pages.logEntryAdded)
150+
151+
await driver.script().unpin(id)
152+
153+
await driver.get(Pages.logEntryAdded)
154+
155+
assert.equal(count, 1)
156+
})
125157
})
126158
},
127159
{ browsers: [Browser.FIREFOX, Browser.CHROME, Browser.EDGE] },

0 commit comments

Comments
 (0)