如何解决 "The constructor ChromeDriver(Capabilities) is deprecated" 和 WebDriverException:ChromeDriver 和 Chrome 超时错误
How to address "The constructor ChromeDriver(Capabilities) is deprecated" and WebDriverException: Timed out error with ChromeDriver and Chrome
我正在尝试按如下方式配置默认下载目录,它工作正常,但我有两个问题:
String exePath = "src\Drivers\chromedriver.exe";
System.setProperty("webdriver.chrome.driver", exePath);
String downloadFilepath = "U:\Data\Download";
HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
chromePrefs.put("profile.default_content_settings.popups", 0);
chromePrefs.put("download.default_directory", downloadFilepath);
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", chromePrefs);
DesiredCapabilities cap = DesiredCapabilities.chrome();
cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
cap.setCapability(ChromeOptions.CAPABILITY, options);
driver = new ChromeDriver(cap);
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
- 它告诉我构造函数 ChromeDriver(Capabilities) 是
弃用
当我多次重放测试时,恰好出现 Webdrive TimeOut 异常
juin 13, 2018 5:23:27 PM org.openqa.selenium.remote.DesiredCapabilities chrome
INFO: Using `new ChromeOptions()` is preferred to `DesiredCapabilities.chrome()`
FAILED CONFIGURATION: @BeforeMethod beforeMethod
org.openqa.selenium.WebDriverException: Timed out waiting for driver server to start.
Build info: version: '3.11.0', revision: 'e59cfb3', time: '2018-03-11T20:26:55.152Z'
System info: host: 'PB02-VD037', ip: '10.143.73.85', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_171'
Driver info: driver.version: ChromeDriver
看来你快到了。需要使用merge()
from MutableCapabilitiesClass方法将DesiredCapabilities类型对象合并为ChromeOptions类型对象并初始化WebDriver 和 WebClient 实例通过传递 ChromeOptions 对象如下:
String exePath = "src\Drivers\chromedriver.exe";
System.setProperty("webdriver.chrome.driver", exePath);
String downloadFilepath = "U:\Data\Download";
HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
chromePrefs.put("profile.default_content_settings.popups", 0);
chromePrefs.put("download.default_directory", downloadFilepath);
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", chromePrefs);
DesiredCapabilities cap = DesiredCapabilities.chrome();
cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
cap.setCapability(ChromeOptions.CAPABILITY, options);
options.merge(cap);
driver = new ChromeDriver(options);
我正在尝试按如下方式配置默认下载目录,它工作正常,但我有两个问题:
String exePath = "src\Drivers\chromedriver.exe";
System.setProperty("webdriver.chrome.driver", exePath);
String downloadFilepath = "U:\Data\Download";
HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
chromePrefs.put("profile.default_content_settings.popups", 0);
chromePrefs.put("download.default_directory", downloadFilepath);
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", chromePrefs);
DesiredCapabilities cap = DesiredCapabilities.chrome();
cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
cap.setCapability(ChromeOptions.CAPABILITY, options);
driver = new ChromeDriver(cap);
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
- 它告诉我构造函数 ChromeDriver(Capabilities) 是 弃用
当我多次重放测试时,恰好出现 Webdrive TimeOut 异常
juin 13, 2018 5:23:27 PM org.openqa.selenium.remote.DesiredCapabilities chrome INFO: Using `new ChromeOptions()` is preferred to `DesiredCapabilities.chrome()` FAILED CONFIGURATION: @BeforeMethod beforeMethod org.openqa.selenium.WebDriverException: Timed out waiting for driver server to start. Build info: version: '3.11.0', revision: 'e59cfb3', time: '2018-03-11T20:26:55.152Z' System info: host: 'PB02-VD037', ip: '10.143.73.85', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_171' Driver info: driver.version: ChromeDriver
看来你快到了。需要使用merge()
from MutableCapabilitiesClass方法将DesiredCapabilities类型对象合并为ChromeOptions类型对象并初始化WebDriver 和 WebClient 实例通过传递 ChromeOptions 对象如下:
String exePath = "src\Drivers\chromedriver.exe";
System.setProperty("webdriver.chrome.driver", exePath);
String downloadFilepath = "U:\Data\Download";
HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
chromePrefs.put("profile.default_content_settings.popups", 0);
chromePrefs.put("download.default_directory", downloadFilepath);
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", chromePrefs);
DesiredCapabilities cap = DesiredCapabilities.chrome();
cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
cap.setCapability(ChromeOptions.CAPABILITY, options);
options.merge(cap);
driver = new ChromeDriver(options);