硒3.14.0中不推荐使用org.openqa.selenium.remote.internal.ApacheHttpClient-应该使用什么代替?

时间:2019-02-27 15:04:54

标签: java selenium selenium-webdriver webdriver

我当前正在使用硒3.14.0库,其中不建议使用 org.openqa.selenium.remote.internal.ApacheHttpClient 。有谁知道应该改用哪个? 该类已在下一版本3.141.59中删除。

我将其与EdgeDriver服务一起使用,如下所示:

final int connectionTimeout = 2 * 60 * 1000;
        final int socketTimeout = 10 * 60 * 1000; // 10 minute timeout
        final ApacheHttpClient.Factory clientFactory = new ApacheHttpClient.Factory(
                new HttpClientFactory(connectionTimeout, socketTimeout));
...
edgeDriverService = new EdgeDriverService.Builder()
                        .usingDriverExecutable(edgeDriver)
                        .usingAnyFreePort()
                        .build();
edgeDriverService.start();
HttpCommandExecutor executor = new HttpCommandExecutor(new HashMap<>(), edgeDriverService.getUrl(), clientFactory);
WebDriver driver = new RemoteWebDriver(executor, new EdgeOptions());

2 个答案:

答案 0 :(得分:10)

http客户端已切换为okhttp:http://square.github.io/okhttp/

在版本3.11.0的Selenium Java CHANGELOG中提到了这一点,您也可以在源代码中看到它。

答案 1 :(得分:-2)

一些事实:

  • Java RemoteWebDriver客户端使用 CommandExecutor 将命令发送到 RemoteWebDriver 。默认情况下, RemoteWebDriver 使用 HttpCommandExecutor ,该命令使用Apache HttpClient库发送命令。
  • 按照 CHANGELOG
    • <{> Selenium v​​2.45.0 中的HttpClient实现细节不属于HttpCommandExecutor
    • 随着 Selenium v​​3.11 的可用性,Selenium Grid切换为使用 OkHttp 而不是 Apache HttpClient
    • 随着 Selenium v​​3.141.0 的发布, Apache HttpClient selenium-server-standalone中被彻底删除, 减少了硒服务器分发软件包的大小。
    • 即使apache-backed httpclient也已删除。