Skip to content

Launching a specific browser version utilising selenium-manager fails #1148

@markdiss

Description

@markdiss

Bug description

We're launching remote browsers on Selenium Grid standalone and have set up selenium-manager on there to manager the browser versions. Selenium-manager is working fine and automatically downloads the latest versions of both firefox and chrome on our Linux based server.

However, we recently wanted to do some testing on a specific version of chrome, so we attempted to use the DescriptCapabilities setVersion method to set the version to "145" rather than "stable". That version of chrome was already downloaded and cached by selenium-manager.
When trying to launch the browser selenium-manager couldn't understand which version was required and an queued grid browser appeared with no version information which then timed out when it couldn't be launched.
The above behaviour could be repeated on firefox with a specific browser version set as well.

After a lot of trial and error, we found we could manually configure old browser versions in the selenium.toml file which could then be launched fine; as well as still getting the latest stable versions via selenium-manager.

We raised this issue SeleniumHQ/selenium#17175 with selenium-manager and it should automatically manager those old browser versions, and does with other language driver frameworks. So something being sent from php-webdriver isn't matching the criteria needed by selenium-manager to trigger the specific browser version to be matched.

Just let us know if you need any further information.

How could the issue be reproduced

$url = 'http://localhost:4444/wd/hub'; // this is the default

$capabilities = DesiredCapabilities::chrome(); // https://php-webdriver.github.io/php-webdriver/1.16.0/Facebook/WebDriver/Remote/DesiredCapabilities.html

$options = new ChromeOptions();

$options->addArguments(['--disable-infobars']);
$options->addArguments(['--hide-scrollbars']);
$options->addArguments(['--window-size=1280,800']);
$options->addArguments(['--headless']);
$options->addArguments(['--verbose']);

$capabilities->setCapability(ChromeOptions::CAPABILITY, $options);
$capabilities->setVersion("145");

$driver = RemoteWebDriver::create($url, $capabilities, 50000, 60000);

Expected behavior

A locally installed Selenium Grid instance should launch an instance of Chrome v145, either pre-downloaded or downloaded on-the-fly by selenium-manager. Using a specific version number will "queue" a browser before timing out, using "stable" will succeed.

Php-webdriver version

1.16.0

PHP version

8.3.30

How do you start the browser driver or Selenium server

java -jar /opt/selenium/cache/grid/4.41.0/selenium-server-4.41.0.jar standalone --config /etc/selenium.toml --selenium-manager true

Selenium server / Selenium Docker image version

4.41.0

Browser driver (chromedriver/geckodriver...) version

No response

Browser name and version

No response

Operating system

Rocky linux 9.7

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions