diff --git a/packages/playwright-core/src/server/bidi/bidiInput.ts b/packages/playwright-core/src/server/bidi/bidiInput.ts index 5266fef023..01b773178d 100644 --- a/packages/playwright-core/src/server/bidi/bidiInput.ts +++ b/packages/playwright-core/src/server/bidi/bidiInput.ts @@ -40,7 +40,7 @@ export class RawKeyboardImpl implements input.RawKeyboard { async keyup(modifiers: Set, code: string, keyCode: number, keyCodeWithoutLocation: number, key: string, location: number): Promise { const actions: bidi.Input.KeySourceAction[] = []; - actions.push({ type: 'keyUp', value: getBidiKeyValue(key) }); + actions.push({ type: 'keyUp', value: getBidiKeyValue(code) }); await this._performActions(actions); } diff --git a/packages/playwright-core/src/server/bidi/third_party/bidiKeyboard.ts b/packages/playwright-core/src/server/bidi/third_party/bidiKeyboard.ts index 307d83fb87..c2d60ff66b 100644 --- a/packages/playwright-core/src/server/bidi/third_party/bidiKeyboard.ts +++ b/packages/playwright-core/src/server/bidi/third_party/bidiKeyboard.ts @@ -7,18 +7,18 @@ /* eslint-disable curly */ -export const getBidiKeyValue = (key: string) => { - switch (key) { +export const getBidiKeyValue = (code: string) => { + switch (code) { case '\r': case '\n': - key = 'Enter'; + code = 'Enter'; break; } // Measures the number of code points rather than UTF-16 code units. - if ([...key].length === 1) { - return key; + if ([...code].length === 1) { + return code; } - switch (key) { + switch (code) { case 'Cancel': return '\uE001'; case 'Help': @@ -131,6 +131,8 @@ export const getBidiKeyValue = (key: string) => { return '\uE052'; case 'MetaRight': return '\uE053'; + case 'Space': + return ' '; case 'Digit0': return '0'; case 'Digit1': @@ -226,6 +228,6 @@ export const getBidiKeyValue = (key: string) => { case 'Quote': return '"'; default: - throw new Error(`Unknown key: "${key}"`); + throw new Error(`Unknown key: "${code}"`); } };