serenity-bdd / serenity-junit-starter

Apache License 2.0
53 stars 86 forks source link

Getting "Could not instantiate class org.openqa.selenium.edge.EdgeDriver" when trying to run 'browserInDocker()' #19

Open patrykost opened 2 years ago

patrykost commented 2 years ago

No matter which driver I'm trying to use error remains the same "Could not instantiate class org.openqa.selenium.(...)". I've used this as instruction:https://johnfergusonsmart.com/whats-new-in-serenity-bdd-3-x/

Changes I've maid:

wakaleo commented 2 years ago

That is a generic Selenium error - the stack trace may provide more details, but this code simply delegates to WebDriverManager, so maybe raising the issue with that project might identify the problem faster.

patrykost commented 2 years ago

Thanks @wakaleo , Unfortunately serenity does not give any different stack trace than this generic one. In the report I can see also: Could not instantiate new WebDriver instance of type class org.openqa.selenium.edge.EdgeDriver (The path to the driver executable The path to the driver executable must be set by the webdriver.edge.driver system property; for more information, see https://docs.microsoft.com/en-us/microsoft-edge/webdriver-chromium/. The latest version can be downloaded from https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/). See below for more details.

wakaleo commented 2 years ago

That's just Serenity reporting an error message coming from Selenium. I don't think it's a Serenity issue as such - have you asked the WebDriverManager community?

patrykost commented 2 years ago

HI @wakaleo , I have not, I'll try to debug in free time.

patrykost commented 2 years ago

Hi @wakaleo It seems that Serenity is not calling DriverManager.create()/quit(). I've managed to make docker run by adding: image

image

Unfortunately error message ha not changed and tests are not running on created docker.

wakaleo commented 2 years ago

Serenity calls the Driver quit() method at the end of each test, so I don't think that is the issue. There may be more needed to be done to support WebDriverManager docker instances, in which case there are two options: (a) have a look and see what (if any) extra code is needed for the Docker support to work (start with a standard Selenium project), (b) wait until someone on the Serenity team has time/wants to take a look (I have no timeline for this), or (c) raise a support request to sponsor the implementation of this feature (if you are using it for your company projects you can ask your company to sponsor the development).