
Новый конструктор для FirefoxDriver (или "релиз 3.4")
Главное изменение в релизе 3.4 – в Java-версии объявлены устаревшими (deprecated) некоторые конструкторы в классах RemoteWebDriver и FirefoxDriver.
Это означает, что в одном из ближайших релизов (3.5, максимум 3.6) они будут удалены. Если вы использовали эти конструкторы – обновите код, чтобы он не перестал компилироваться и выполняться при выходе следующих релизов.
Во-первых, устаревшими объявлены конструкторы, которые на вход принимали два объекта типа Capabilities
– так называемые “желаемые” (desired) и “требуемые” (required) свойства запускаемого драйвера. Скорее всего вы их не использовали, потому что семантика “требуемых” свойств плохо определена и нигде не документирована.
Во-вторых, в классе FirefoxDriver устаревшими объявлены три конструктора, от удаления которых вы можете пострадать:public FirefoxDriver(FirefoxBinary binary)
public FirefoxDriver(FirefoxBinary binary, FirefoxProfile profile)
public FirefoxDriver(FirefoxBinary binary, FirefoxProfile profile, Capabilities capabilities)
В следующем релизе будет объявлен устаревшим ещё один конструктор (о нем просто забыли):public FirefoxDriver(FirefoxProfile profile)
Взамен удаляемых конструкторов добавлен новый:public FirefoxDriver(FirefoxOptions options)
На вход он принимает объект типа FirefoxOptions, в него упаковывается информация о свойствах драйвера и браузера, которые раньше передавались как отдельные параметры конструктора.
Так, старый код инициализации драйвераFirefoxBinary binary = new FirefoxBinary(
new File("c:/Program Files/Nightly/firefox.exe"));
binary.addCommandLineOptions("-console");
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("browser.cache.disk.enable", false);
DesiredCapabilities capabilities = new DesiredCapabilities(
ImmutableMap.of("pageLoadStrategy", "eager"));
WebDriver driver = new FirefoxDriver(binary, profile, capabilities);
превратится в такой:FirefoxOptions options = new FirefoxOptions()
.setBinary("c:/Program Files/Nightly/firefox.exe")
.addArguments("-console")
.addPreference("browser.cache.disk.enable", false)
.addCapabilities(new DesiredCapabilities(
ImmutableMap.of("pageLoadStrategy", "eager")));
WebDriver driver = new FirefoxDriver(options);
Не ждите следующего релиза, исправьте свой код прямо сейчас!