提问者:小点点

我如何初始化Chrome远程Web驱动程序使用WebDriverManager同时传递ChromeOptions和Selenium网格独立服务器网址?


尝试使用WebDriverManager初始化Chrome远程Web驱动程序,同时使用Java传递ChromeOptions和Selenium Grid独立服务器URL。来自在线示例;传递Chrome选项如下所示:

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

传递selenium网格独立服务器的集线器URL如下所示:

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

如何将两者都传递给RemoteWebDriver对象?

谢啦

编辑:

这是我的代码。我得到一个错误从create()方法[main]错误io. github.bonigarcia.wdm.WebDriverManager-有一个错误创建WebDriver对象为Chromeio.github.bonigarcia.wdm.config.WebDriverManagerException:超时30秒创建WebDriver对象

public void createDriver()抛出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);
}

共1个答案

匿名用户

您需要为此使用方法能力():

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

也不需要调用settings(),因为它是由create()方法调用的。