0

Trying to initialize a Chrome Remote web driver using WebDriverManager, while passing ChromeOptions and a Selenium Grid standalone server URL using Java. From online examples; Passing Chrome options would look like this:

WebDriverManager.chromedriver().setup();
RemoteWebDriver remoteWebDriver = new ChromeDriver(options);
threadLocalDriver.set(remoteWebDriver);

Passing the hub URL for the selenium grid standalone server would look like this:

WebDriverManager.chromedriver().setup();
RemoteWebDriver remoteWebDriver = ((RemoteWebDriver) WebDriverManager
                                           .chromedriver()
                                           .remoteAddress(hubURL)
                                           .create());
threadLocalDriver.set(remoteWebDriver);

How can I pass both to a RemoteWebDriver object?

Thanks

EDIT:

Here is my code. I am getting an error from create() method [main] ERROR io.github.bonigarcia.wdm.WebDriverManager - There was an error creating WebDriver object for Chrome io.github.bonigarcia.wdm.config.WebDriverManagerException: Timeout of 30 seconds creating WebDriver object

public void createDriver() throws IOException {

    ChromeOptions options = getPlatformSpecificOptions();
    logger.info("Driver options: " + options.toString());
    
        String hubURL = "http://127.0.0.1:4444/wd/hub";
        
        WebDriver driver = WebDriverManager.chromedriver()
                .capabilities(options)
                .remoteAddress(hubURL)
                .create();           
        threadLocalDriver.set(((RemoteWebDriver) driver));
        
    }
    TestHelper.setPlatform(PLATFORM);
}

zivGadri
  • 1
  • 1
  • 2

1 Answers1

0

You need to use the method capabilities() for that:

ChromeOptions options = new ChromeOptions();
options.addArguments("--headless");
WebDriver driver = WebDriverManager.chromedriver()                        
                                   .capabilities(options)
                                   .remoteAddress(hubURL)
                                   .create();

Also calling setup() is not needed as it is called by create() method.

  • Thank you Simon for your response. Tried your code. I am getting this error: **[main] ERROR io.github.bonigarcia.wdm.WebDriverManager - There was an error creating WebDriver object for Chrome io.github.bonigarcia.wdm.config.WebDriverManagerException: Timeout of 30 seconds creating WebDriver object at io.github.bonigarcia.wdm.webdriver.WebDriverCreator.createRemoteWebDriver(WebDriverCreator.java:95) ** Added my code in the question. Maybe you'll have more ideas as to where this error comes from. Truly appreciate your help! – zivGadri Jan 14 '22 at 21:38