The webdriver spec says that send keys has to use the action primitives for synthesizing the key codes. Right now it's using its own implementation.
[Mass Change 2018-01-15] Moving bugs to backlog
Priority: -- → P3
OS: Unspecified → All
Priority: P3 → P2
Hardware: Unspecified → All
Version: Version 3 → Trunk
Summary: sendkeys() has to use the action primitives → Use action primitives for WebDriver:ElementSendKeys
Summary: Use action primitives for WebDriver:ElementSendKeys → WebDriver:ElementSendKeys to use action primitives
To solve this we cannot simply refactor `event.sendKeysToElement()` because this is still in use by the `legacySendKeysToElement()` method. And this we have to keep for a while, until we can be sure to remove the `moz:webdriverClick` compat flag. As such the entry point which would need that change is `interaction.webdriverSendKeysToElement()`. Once we got rid of all the old cruft, we can then remove no longer used methods.
Assignee: nobody → hskupin
Status: NEW → ASSIGNED
(In reply to Henrik Skupin (:whimboo) from comment #2) > To solve this we cannot simply refactor > `event.sendKeysToElement()` because this is still in use by the > `legacySendKeysToElement()` method. And this we have to keep for > a while, until we can be sure to remove the `moz:webdriverClick` > compat flag. Would it be easier to duplicate sendKeysToElement inside legacyaction.js to unblock this? It of course depends on how difficult it is to remove legacy actions completely, but I wouldn’t want to block anything related to WebDriver conformance on the count of legacy actions.
(In reply to Andreas Tolfsen ❲:ato❳ from comment #3) > Would it be easier to duplicate sendKeysToElement inside > legacyaction.js to unblock this? I don't see anything related to `sendKeysToElement` for legacy actions. Those only support `keyDown` and `keyUp`. > It of course depends on how difficult it is to remove legacy actions > completely, but I wouldn’t want to block anything related to > WebDriver conformance on the count of legacy actions. I have already made a bit of progress on that bug by Tuesday and the implementation is actually more complex as I have thought. But anyway, nothing from the legacy actions should block it. We will only have to leave `event.sendKeysToElement()` in-place for now, and can remove it later once legacy actions are no longer a thing. For the first implementation here I will drop the part of splitting the string by grapheme clusters, similar what Maja did earlier for the initial actions implemenatation. I will file a follow-up bug to get this implemented afterward, also because it won't be a regression due to we aren't doing it those days.
Also note that our event.js module is kinda outdated and doesn't contain any of the composition related key ynthesizing methods yet. I will have to sync the file with the latest version of EventUtils.js: https://dxr.mozilla.org/mozilla-central/source/testing/mochitest/tests/SimpleTest/EventUtils.js
James, there is an open action for you from our meeting at TPAC in updating the WebDriver specification for https://github.com/w3c/webdriver/issues/1322. Could you please have a look at it? Thanks.
Assignee: hskupin → nobody
Status: ASSIGNED → NEW
Type: defect → enhancement
Priority: P1 → P2
You need to log in before you can comment on or make changes to this bug.