SeasideSt / Parasol

Testing web apps in Smalltalk using Selenium WebDriver.
MIT License
31 stars 16 forks source link

KeyNotFound: key 'ELEMENT' not found in Dictionary #23

Closed IwanVosloo closed 5 years ago

IwanVosloo commented 5 years ago

Running with selenium-server-standalone-3.141.59 and geckodriver-v0.23.0 any attempt to find an element results in the above exception.

I see from the W3 WebDriver spec that:

The web element identifier is the string constant "element-6066-11e4-a52e-4f735466cecf".

Which seems indeed to be what is returned in these cases, yet there are several methods that check for the string 'ELEMENT' instead.

IwanVosloo commented 5 years ago

BTW, testing the same thing with Chrome 70.0.3538.77 / Chromedriver 2.44 does not give the same error. In this case 'ELEMENT' is what is returned.

So, it seems the two different backends behave inconsistently... I don't have the knowledge to judge how to fix the inconsistency / whether Parasol has somewhere with the responsibility to make things consistent.

Rinzwind commented 5 years ago

Unless you specifically need Firefox, I would recommend sticking to Chrome and chromedriver at the moment.

In response to issue #1, we stopped testing with Firefox because of the following note in the Selenium changelog:

Support for later versions of firefox is provided by geckodriver, which is based on the evolving W3C WebDriver spec, and uses the wire protocol in that spec, which is liable to change without notice.

That was 2 years ago, but the W3C WebDriver spec moved from “Proposed Recommendation” to “Recommendation” only a few months ago. The chromedriver website says:

ChromeDriver is a standalone server which implements WebDriver's wire protocol for Chromium. We are in the process of implementing and moving to the W3C standard.

IwanVosloo commented 5 years ago

Understood, thanks!

Rinzwind commented 5 years ago

Ok, I will mark this issue as closed.