Поддержка Firefox ESR 52

Поддержка Firefox ESR 52

Ранее мы писали, что старая схема запуска FirfoxDriver (без использования geckodriver) не будет работать в браузерах, начиная с версии 48. Тем, кто пока не готов переходить на новую схему, предлагалось использовать специальную версию “для корпоративных клиентов” Firefox ESR 45.

Но вот пришло время обновления и для этой линейки браузера, на прошлой неделе вышла версия ESR 52.

Предполагалось, что с ней Selenium не сможет работать по старой схеме – браузер требует, чтобы все дополнения прошли аудит безопасности и были подписаны специальной цифровой подписью, но на это у Selenium не было никаких шансов.

Хорошая новость состоит в том, что Mozilla пошла навстречу пользователям и продлила возможность использовать в ESR 52 неподписанные расширения, в том числе это распространяется и на Selenium.

Правда, для этого вам всё таки придётся обновить версию Selenium до самой последней (на текущий момент 3.3.1) и при инициализации драйвера явно указывать, что нужно использовать старую схему запуска. Вот так это делается в разных языках программирования:

// Java
FirefoxOptions options = new FirefoxOptions().setLegacy(true);
WebDriver driver = new FirefoxDriver(options);
// C#
FirefoxOptions options = new FirefoxOptions();
options.UseLegacyImplementation = true;
driver = new FirefoxDriver(options);
# Python
wd = webdriver.Firefox(capabilities={"marionette": False})
# Ruby
caps = Selenium::WebDriver::Remote::Capabilities.new()
@driver = Selenium::WebDriver.for(:firefox, :desired_capabilities => caps)
// JavaScript
var driver = new webdriver.Builder()
  .withCapabilities({'marionette': false})
  .forBrowser('firefox')
  .build();