Closed jbrichau closed 4 years ago
Parasol has been changed to work with the W3C WebDriver protocol. To upgrade, you may want to upgrade to commit 4c5b875 first. It's the last version that still uses the JSON wire protocol, but it has some changes in preparation for the switch to the W3C protocol, so you may want to check first that things still work when using that version.
When upgrading beyond commit 4c5b875, there are a few known incompatibilities to keep in mind:
#moveToElement:offset
, and senders thereof such as #drag:andDropBy:
, may click at the wrong offset; see the comment in the method for more details.driver getKeyboard sendKeys: …
behaves differently with respect to modifier keys: previously, sending a modifier key would toggle its state, whereas now a modifier key is always sent as a “key down” (see commit b73ccfe). This seemed “good enough”; correctly emulating the old toggling behavior would probably require keeping track of the “input source state” of the “key input source” to know whether to send a “key down” or “key up”.For reference, there are some tests based on the Selenium WebDriver Java bindings that I used to compare the behavior when using different versions of chromedriver (2.44 and 77.0.3865.40):
Tests_Java_Parasol_Issue_29.zip. These work when using chromedriver 2.44 and Chrome v77.0.3865.90. When using chromedriver 77, testModifierKeys
fails, the other tests work (some are not really tests though, but just snippets to check the commands that the driver receives as logged in “log_chromedriver.log”).
There are also some related issues that I opened or commented on: https://github.com/SeleniumHQ/selenium/issues/7542, https://github.com/SeleniumHQ/selenium/issues/4847#issuecomment-530368015, https://github.com/SeleniumHQ/selenium/issues/7566, https://github.com/SeleniumHQ/selenium/issues/7579.
Chromedriver 75 runs in W3C compatibility mode by default [1]. The W3C version protocol of webdriver [2] is not yet implemented in Parasol. The tests should put the 'w3c' chromeoption to false, as long as this protocol is not implemented.
[1] https://chromedriver.storage.googleapis.com/75.0.3770.8/notes.txt [2] https://www.w3.org/TR/webdriver1/