我遇到了一個問題,即硒不能按住鍵,是不是在這個名單 -如何使用硒按住非修飾鍵(空格鍵)?
Keys.SHIFT,
Keys.CONTROL,
Keys.ALT,
Keys.META,
Keys.COMMAND,
Keys.LEFT_ALT,
Keys.LEFT_CONTROL,
Keys.LEFT_SHIFT
我的應用表明,只有當按下空格鍵不放說明。我想爲此編寫瀏覽器測試。
我正在使用ProtractorJS,但它似乎像這樣的行動的一般限制,無論在任何地方,當你嘗試使用其他鍵的keyDown - 你會得到一個異常,像這樣的消息 - 「鍵向下/感覺修飾鍵。「
而且相同的檢查中硒的js代碼: https://github.com/SeleniumHQ/selenium/blob/master/javascript/webdriver/actionsequence.js#L301
我如何可以按住非修改鍵?空間鍵在我的情況。
更新: 感謝Florent B.答案。 經過小小修改 - 完美適合我。必須添加切換到框架,並調度事件文件,而不是我的情況下特定的元素。
browser.switchTo().frame('workspace');
const SIMULATE_KEY =
"var e = new Event('keydown');" +
"e.keyCode = 32;" + //spacebar keycode
"e.which = e.keyCode;" +
"e.altKey = false;" +
"e.ctrlKey = false;" +
"e.shiftKey = false;" +
"e.metaKey = false;" +
"e.bubbles = true;" +
"document.dispatchEvent(e);";
browser.executeScript(SIMULATE_KEY);
有趣 - 我的閱讀該規範(https://w3c.github.io/webdriver/webdriver-spec.html #keyboard-actions)似乎沒有強烈地證明當前的行爲。 –