ОК, я решил это. Проблема заключалась в том, что я смешал 2 подхода, оба из которых я нашел в комментариях в коде selenium-webdriver Первый, который я нашел на github (последняя ветка master), выглядит так:
let options = new firefox.Options()
.addExtensions('/path/to/firebug.xpi')
.setPreference('extensions.firebug.showChromeErrors', true);
Итак, здесь можно вызвать setPreference () для объекта Options. Этот фрагмент кода взят из последней ветки master. Проблема в том, что текущий мастер выпущен как нестабильный (4.0.0-alpha.sth ...).
Последняя стабильная версия, которая была выпущена - 3.6.0, и есть много различий между API Поэтому я нашел похожий пример кода непосредственно в пакете selenium-webdriver, на который я ссылаюсь в своем проекте, и настройка параметров в этой версии выглядит следующим образом:
let profile = new firefox.Profile();
profile.addExtension('/path/to/firebug.xpi');
profile.setPreference('extensions.firebug.showChromeErrors', true);
let options = new firefox.Options().setProfile(profile);
В этой стабильной версии API метод setPreference () принадлежит классу Profile. Но помимо этого есть еще одна большая разница. В версии 4.0.0 api метод возвращает сам измененный объект, тогда как в стабильной версии метод только устанавливает состояние. Так что это не работает в стабильной версии:
let profile = new firefox.Profile().setPreference("intl.accept_languages", "en-US");
И это правильный код:
let profile = new firefox.Profile();
profile.setPreference("intl.accept_languages", "en,en-US");
Наконец, если вы хотите установить локаль для веб-драйвера Firefox, вот рабочие примеры кода для selenium-webdriver 3.6.0:
let profile = new firefox.Profile();
profile.setPreference("intl.accept_languages", "en,en-US");
let options = new firefox.Options().setProfile(profile);
let driver = new selenium.Builder()
.forBrowser('firefox')
.setFirefoxOptions(options)
.build();
А для selenium-webdriver 4.0.0:
let options = new firefox.Options()
.setPreference("intl.accept_languages", "en,en-US");
let driver = new selenium.Builder()
.forBrowser('firefox')
.setFirefoxOptions(options)
.build();