¿Cómo puedo inicializar el controlador remoto de Chrome utilizando WebDriverManager, al pasar ChromeOptions y una URL del servidor independiente de Selenium Grid?
Intentando inicializar un Chrome Remote web driver utilizando WebDriverManager, mientras se pasan ChromeOptions y una URL del servidor Selenium Grid standalone utilizando Java.
A partir de ejemplos en línea;
Pasando las opciones de Chrome se vería así:
WebDriverManager.chromedriver().setup();
RemoteWebDriver remoteWebDriver = new ChromeDriver(options);
threadLocalDriver.set(remoteWebDriver);
Pasando la URL del hub para el servidor independiente de Selenium Grid se vería así:
WebDriverManager.chromedriver().setup();
RemoteWebDriver remoteWebDriver = ((RemoteWebDriver) WebDriverManager
.chromedriver()
.remoteAddress(hubURL)
.create());
threadLocalDriver.set(remoteWebDriver);
¿Cómo puedo pasar ambos a un objeto RemoteWebDriver?
Gracias
EDIT:
Aquí está mi código. Estoy obteniendo un error del método create()
[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);
}
davy.ai
Para inicializar un Chrome RemoteWebDriver utilizando WebDriverManager mientras se pasan tanto ChromeOptions como una URL del servidor autónomo de Selenium Grid, puedes utilizar el siguiente código:
Este código primero crea una instancia de ChromeOptions con las opciones deseadas, luego almacena la URL del servidor autónomo de Selenium Grid en una variable de tipo cadena llamada
hubURL
. A continuación, crea una instancia de RemoteWebDriver y pasaoptions
yhubURL
a su constructor.Finalmente, configura el ChromeDriver con WebDriverManager y establece la instancia creada de RemoteWebDriver en la variable local del hilo llamada
threadLocalDriver
.Ten en cuenta que debes manejar la excepción MalformedURLException que puede ser lanzada por el constructor de la URL.