serenity-bdd / serenity-core

Serenity BDD is a test automation library designed to make writing automated acceptance tests easier, and more fun.
http://serenity-bdd.info
Other
724 stars 518 forks source link

Serenity 4 fails to use specified binary for chrome #3557

Open amadain17 opened 1 month ago

amadain17 commented 1 month ago

What happened?

My serenity.conf file has, as noted in https://serenity-bdd.github.io/docs/guide/driver_config#configuring-driver-binaries-by-hand, a section pointing to my downloaded binaries like so:

drivers { windows { webdriver.chrome.driver = "src/test/resources/webdriver/windows/chromedriver.exe" } mac { webdriver.chrome.driver = "src/test/resources/webdriver/mac/chromedriver" } linux { webdriver.chrome.driver = "src/test/resources/webdriver/linux/chromedriver" } }

I also specified the binary in the webdriver capabilities section like so:

webdriver { capabilities { browserName = "Chrome" "goog:chromeOptions" { binary="src/test/resources/drivers/chromedriver-mac-arm64/chromedriver" args = [ "start-maximized", "headless", "test-type", "no-sandbox", "ignore-certificate-errors", "disable-popup-blocking", "disable-default-apps", "disable-extensions-file-access-check", "disable-dev-shm-usage", "incognito", "disable-infobars", "disable-gpu" ] } } timeouts { implicitlywait = 30000 fluentwait = 300000 } }

when I ran my tests I got:

net.thucydides.core.webdriver.DriverConfigurationError: Could not instantiate class org.openqa.selenium.chrome.ChromeDriver Caused by: net.thucydides.core.webdriver.DriverConfigurationError: WebDriver was unable to create a new instance of type class org.openqa.selenium.chrome.ChromeDriver WebDriver reported the following message: Could not start a new session. Response code 500. Message: session not created: No matching capabilities found Host info: host: 'X143FPVYP2', ip: 'fe80:0:0:0:10fa:1597:8da5:e20d%en0' Build info: version: '4.12.0', revision: '249f2a7d1b' System info: os.name: 'Mac OS X', os.arch: 'aarch64', os.version: '14.7', java.version: '17.0.4.1' Driver info: org.openqa.selenium.chrome.ChromeDriver Command: [null, newSession {capabilities=[Capabilities {acceptInsecureCerts: false, browserName: Chrome, goog:chromeOptions: {args: [start-maximized, test-type, no-sandbox, ignore-certificate-errors, disable-popup-blocking, disable-default-apps, disable-extensions-file-acc..., disable-dev-shm-usage, incognito, disable-infobars, disable-gpu, start-maximized, test-type, no-sandbox, ignore-certificate-errors, disable-popup-blocking, disable-default-apps, disable-extensions-file-acc..., disable-dev-shm-usage, incognito, disable-infobars, disable-gpu, remote-allow-origins=], binary: src/test/resources/drivers/..., extensions: []}}]}] See below for more details. Caused by: org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created: No matching capabilities found

What did you expect to happen?

I expected my tests to use the binary stored in src/test/resources/webdriver/mac/chromedriver but the error seems to indicate that selenium 4 attempted to download from the web

Serenity BDD version

4.0.1

JDK version

17

Execution environment

Using a macbook pro. The browser is chrome

How to reproduce the bug.

create a serenity.conf with the abovementioned

How can we make it happen?

Work on this myself and propose a PR (with Serenity BDD team guidance)

wakaleo commented 1 month ago

It looks like Selenium is trying to use your drivers but failing because it isn't happy with the config options.