Запуск безголового Firefox WebDriver на Jenkins (ОС Windows)

Мои тестовые примеры включают экспорт / загрузку файлов Excel с веб-страниц. Для чего я использую профиль Firefox, чтобы принимать загрузки, когда в окнах появляется всплывающее диалоговое окно загрузки. Следующий код работает, когда я выполняю свой тест в локальных окнах.

ProfilesIni profile = new ProfilesIni();
    FirefoxProfile fProfile = profile.getProfile("Selenium");

    fProfile.setPreference("browser.download.folderList", 2); 
    fProfile.setPreference("browser.download.manager.showWhenStarting", false);
    fProfile.setPreference("browser.download.dir", "C:\\temp\\reports\\");
    fProfile.setPreference("browser.helperApps.neverAsk.openFile", "text/csv,application/x-msexcel,application/excel,application/x-excel,application/vnd.ms-excel,image/png,image/jpeg,text/html,text/plain,application/msword,application/xml");
    fProfile.setPreference("browser.helperApps.neverAsk.saveToDisk", "text/csv,application/x-msexcel,application/excel,application/x-excel,application/vnd.ms-excel,image/png,image/jpeg,text/html,text/plain,application/msword,application/xml");
    fProfile.setPreference("browser.helperApps.alwaysAsk.force", false);
    fProfile.setPreference("browser.download.manager.alertOnEXEOpen", false);
    fProfile.setPreference("browser.download.manager.focusWhenStarting", false);
    fProfile.setPreference("browser.download.manager.useWindow", false);
    fProfile.setPreference("browser.download.manager.showAlertOnComplete", false);
    fProfile.setPreference("browser.download.manager.closeWhenDone", false);

    fProfile.setAcceptUntrustedCertificates(true);
    fProfile.setAssumeUntrustedCertificateIssuer(true);
    fProfile.setPreference("security.insecure_field_warning.contextual.enabled", false);        
    DesiredCapabilities capabilities = DesiredCapabilities.firefox();
    capabilities.setCapability(FirefoxDriver.PROFILE, fProfile);
    capabilities.setCapability("marionette", true);
    capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
    capabilities.setAcceptInsecureCerts(true);
     driver = new FirefoxDriver(capabilities);

Я хочу запустить тесты на Jenkins, и у меня возникли проблемы. Я получаю исключение Nullpointer в строке сразу после инициализации профиля firefox. Это означает, что профиль Firefox не загрузился. Ниже приводится ошибка.

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

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

Мне интересно, не понимает ли Дженкинс профиль firefox "Selenium", который я создал в разделе профиля Firefox.

Примечание. Я могу запускать свои тесты из командной строки Windows, но не через Jenkins.

Любая помощь высоко ценится.


person Ophelia    schedule 28.11.2017    source источник
comment
FirefoxProfile - это устаревший класс для создания профиля на диске. Вместо этого используйте FirefoxOptions, чтобы установить предпочтения.   -  person Florent B.    schedule 28.11.2017
comment
Большое спасибо Флоран Б, это сработало :) Как мне принять ваш ответ?   -  person Ophelia    schedule 28.11.2017


Ответы (1)


Вместо использования возможностей используйте FirefoxOptions

FirefoxOptions options = new FirefoxOptions();
options.addArgument("--headless");
WebDriver driver = new FirefoxDriver(options);
person Marcel    schedule 28.11.2017