Skip to content

Commit d51c74a

Browse files
committed
[bidi][js] Add Input module JS command
1 parent 12a9967 commit d51c74a

File tree

3 files changed

+48
-9
lines changed

3 files changed

+48
-9
lines changed

javascript/node/selenium-webdriver/bidi/input.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,16 @@ class Input {
4747

4848
return response
4949
}
50+
51+
async release(browsingContextId) {
52+
const command = {
53+
method: 'input.releaseActions',
54+
params: {
55+
context: browsingContextId,
56+
},
57+
}
58+
return await this.bidi.send(command)
59+
}
5060
}
5161

5262
async function updateActions(actions) {

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ const Pages = (function () {
115115
addPage('emptyPage', 'bidi/emptyPage.html')
116116
addPage('emptyText', 'bidi/emptyText.txt')
117117
addPage('redirectedHttpEquiv', 'bidi/redirected_http_equiv.html')
118+
addPage('releaseAction', 'bidi/release_action.html')
118119

119120
return pages
120121
})()

javascript/node/selenium-webdriver/test/bidi/input_test.js

Lines changed: 37 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020
const assert = require('assert')
2121
const fileServer = require('../../lib/test/fileserver')
2222
const firefox = require('../../firefox')
23-
const { ignore, Pages, suite } = require('../../lib/test')
24-
const { Key, Origin } = require('../../lib/input')
25-
const { Browser, By, until } = require('../..')
23+
const {ignore, Pages, suite} = require('../../lib/test')
24+
const {Key, Origin} = require('../../lib/input')
25+
const {Browser, By, until} = require('../..')
2626
const Input = require('../../bidi/input')
2727

2828
suite(
@@ -66,7 +66,7 @@ suite(
6666

6767
const div = await driver.findElement(By.css('div'))
6868
const rect = await div.getRect()
69-
assert.deepStrictEqual(rect, { width: 500, height: 500, x: 0, y: 0 })
69+
assert.deepStrictEqual(rect, {width: 500, height: 500, x: 0, y: 0})
7070

7171
const actions = await driver.actions().click(div).getSequences()
7272

@@ -91,11 +91,11 @@ suite(
9191

9292
const div = await driver.findElement(By.css('div'))
9393
const rect = await div.getRect()
94-
assert.deepStrictEqual(rect, { width: 500, height: 500, x: 0, y: 0 })
94+
assert.deepStrictEqual(rect, {width: 500, height: 500, x: 0, y: 0})
9595

9696
const actions = await driver
9797
.actions()
98-
.move({ x: 10, y: 10, origin: div })
98+
.move({x: 10, y: 10, origin: div})
9999
.click()
100100
.getSequences()
101101

@@ -171,9 +171,9 @@ suite(
171171

172172
const actions = await driver
173173
.actions()
174-
.move({ origin: slide })
174+
.move({origin: slide})
175175
.press()
176-
.move({ x: 100, y: 100, origin: Origin.POINTER })
176+
.move({x: 100, y: 100, origin: Origin.POINTER})
177177
.release()
178178
.getSequences()
179179

@@ -345,6 +345,34 @@ suite(
345345
},
346346
)
347347

348+
it('can execute release in browsing context', async function () {
349+
const browsingContextId = await driver.getWindowHandle()
350+
const input = await Input(driver)
351+
await driver.get(Pages.releaseAction)
352+
353+
let inputTextBox = await driver.findElement(By.id('keys'))
354+
355+
await driver.executeScript('arguments[0].focus()', inputTextBox)
356+
357+
358+
const actions = await driver
359+
.actions()
360+
.keyDown('a')
361+
.keyDown('b')
362+
.getSequences()
363+
364+
await input.perform(browsingContextId, actions)
365+
366+
await driver.executeScript('resetEvents()')
367+
368+
await input.release(browsingContextId)
369+
370+
const events = await driver.executeScript('return allEvents.events')
371+
372+
assert.strictEqual(events[0].code, 'KeyB')
373+
assert.strictEqual(events[1].code, 'KeyA')
374+
})
375+
348376
async function _getEvents(driver) {
349377
await driver.wait(async () => {
350378
const events = await driver.executeScript('return allEvents.events;')
@@ -354,5 +382,5 @@ suite(
354382
}
355383
})
356384
},
357-
{ browsers: [Browser.FIREFOX] },
385+
{browsers: [Browser.FIREFOX]},
358386
)

0 commit comments

Comments
 (0)