Журналы Webdriver для Firefox

Оба Chrome и PhantomJS драйверы selenium могут регистрировать все, что происходит в браузере боковая сторона. Указав путь к журналу службы при инициализации драйвера, вы можете контролировать, где будут записываться журналы. Например. для хром (в Python):

from selenium import webdriver

driver = webdriver.Chrome(service_log_path="/tmp/log")
driver.get("http://www.google.com")
driver.close()

После выполнения кода файл /tmp/log будет содержать журналы служб, которые могут быть полезны для отладки:

[0.985][INFO]: Launching chrome: ...
[2.620][INFO]: RESPONSE InitSession {
   "acceptSslCerts": true,
   "applicationCacheEnabled": false,
   "browserConnectionEnabled": false,
   "browserName": "chrome",
   "chrome": {
      "userDataDir": "/var/folders/yy/ppdg927x4zv8b0rbzg1f_jzh0000gn/T/.org.chromium.Chromium.ibsof9"
   },
   "cssSelectorsEnabled": true,
   "databaseEnabled": false,
   "handlesAlerts": true,
   "javascriptEnabled": true,
   "locationContextEnabled": true,
   "nativeEvents": true,
   "platform": "Mac OS X",
   "rotatable": false,
   "takesHeapSnapshot": true,
   "takesScreenshot": true,
   "version": "37.0.2062.120",
   "webStorageEnabled": true
}
[2.677][INFO]: Waiting for pending navigations...
[2.696][INFO]: Done waiting for pending navigations
[3.290][INFO]: Waiting for pending navigations...
[4.338][INFO]: Done waiting for pending navigations
[4.338][INFO]: RESPONSE Navigate
[4.339][INFO]: COMMAND CloseWindow {

}
[4.451][INFO]: RESPONSE CloseWindow

Есть ли способ получить ту же информацию, но с помощью Firefox веб-драйвера?

Из того, что я вижу в исходном коде, Chrome и PhantomJS запускает новые службы через subprocess и передает аргумент --log-path Это. И эти службы несут ответственность за ведение журнала. Что касается Firefox драйвера, реализация его совсем другая и основана на FirefoxBinary классе.

Предоставленный пример и ссылки связаны с Python, но вопрос довольно общий и язык-агностик. По достоинству оценят любые указатели.

Ответ 1

Вы должны установить параметры ведения журнала в профиле Firefox, как в ссылке на советы разработчиков - https://code.google.com/p/selenium/wiki/DeveloperTips - для консольного журнала вы должны использовать:

FirefoxProfile p = new FirefoxProfile();
p.setPreference("webdriver.log.file", "/tmp/firefox_console");
WebDriver driver = new FirefoxDriver(p);

Для журнала браузера вы должны использовать

webdriver.firefox.logfile 

(https://code.google.com/p/selenium/wiki/FirefoxDriver)

Надеюсь, что это поможет.

Ответ 2

Я считаю, что регистрация FireFox должна включаться через профиль. Которая должна быть закодирована в base64.

Что-то в этих строках упоминается в этой ошибке, связанной с RemoteWebDriver.

Любая помощь?