Skip to content

Requests for operablink fallback to Chrome #6057

@dmssargent

Description

@dmssargent

Meta

OS

Windows 10, Ubuntu

Selenium Version

3.8.1, 3.12.0

Browser

Opera

Browser Version

Opera 53

Expected Behavior

Opera and OperaDriver should launch, given the requested capability is operablink

Actual Behavior

Chrome and Chromedriver launch as the fallback driver, and Chrome is instead used for the testing.

Steps to reproduce

Setup a Selenium node and hub with opera and operablink included as capabilities. The following example code is for a Windows node.

final String finalSeleniumHubUrl = <hub url>
OperaOptions operaOptions = new OperaOptions();
String operaBinaryPath = "C:\\Program Files\\Opera\\launcher.exe";
operaOptions.setBinary(operaBinaryPath);
driver = new RemoteWebDriver(finalSeleniumHubUrl, operaOptions);

Chrome launches on the node.

However, if we change the code to the following

final String finalSeleniumHubUrl = <hub url>
OperaOptions operaOptions = new OperaOptions();
operaOptions.setCapability(BROWSER_NAME, org.openqa.selenium.remote.BrowserType.OPERA);
// This string needs to be changed to the correct path of Opera per OS. This is for Windows
String operaBinaryPath = "C:\\Program Files\\Opera\\launcher.exe";
operaOptions.setBinary(operaBinaryPath);
driver = new RemoteWebDriver(finalSeleniumHubUrl, operaOptions);

Opera launches as intended.

My Proposed Solution

At https://github.com/SeleniumHQ/selenium/blob/master/java/server/src/org/openqa/selenium/remote/server/ActiveSessionFactory.java#L93, OPERA_BLINK is assigned a non-existent driver service, which fails the following class exists test. If the driver service for OPERA_BLINK is changed to be the same as the driver service for OPERA, this issue should be resolved.

Metadata

Metadata

Assignees

No one assigned

    Labels

    B-gridEverything grid and server related

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions