Запуск безголового Firefox с Selenium на OpenShift - в соединении отказано

Итак, я установил несколько тестов Selenium для запуска в OpenShift в Chrome + Firefox без головы. Они отлично работают на моем компьютере с Windows в браузере с графическим интерфейсом пользователя, и Chrome headless также отлично работает. Для Firefox я получаю сообщение об ошибке «соединение отказано», и geckodriver, похоже, не может подключиться к Firefox. Я нашел с десяток сообщений по этому поводу, но решения пока нет. У кого-нибудь есть совет по этому поводу? большое спасибо!

Желаемые возможности

 public static DesiredCapabilities getFirefoxCapabilities () {
    DesiredCapabilities caps = DesiredCapabilities.firefox();
    caps.setPlatform(org.openqa.selenium.Platform.ANY);

    FirefoxOptions options = new FirefoxOptions();
    options.setBinary("/usr/lib64/firefox/firefox-bin"); 
    options.setHeadless(true);
    options.addArguments("--disable-gpu");
    options.addArguments("--allow-insecure-localhost");
    options.addArguments("--remote-debugging-port=9222");
    options.setAcceptInsecureCerts(true);

    FirefoxProfile profile = new FirefoxProfile();
    profile.setPreference("sanity-test.running", true);

    options.setProfile(profile);

    caps.merge(options);

    return caps;
  }

Настройка реализации Webdriver

System.setProperty("webdriver.gecko.driver",  openshift_browserDriverPath_Firefox);
try {
    driver.set(new FirefoxDriver(headlessDriverCapabilityFactory.getCapabilities(getBrowserName())));
}
catch(Exception e) {
    System.out.println("setup headless ff: " + e.getMessage() + "failed at " + e.getStackTrace());
}

Выдержка из журнала Дженкинса

1565697695283   mozrunner::runner   INFO    Running command: 
"/usr/lib64/firefox/firefox-bin" "-marionette" "-headless" "--disable- 
gpu" "--allow-insecure-localhost" "--remote-debugging-port=9222" "- 
foreground" "-no-remote" "-profile" "/tmp/rust_mozprofile.LMzPtqcIh6wS"
*** You are running in headless mode.
 1565697700885  addons.xpi  WARN    Can't get modified time of 
 /usr/lib64/firefox/browser/features/[email protected]
1565697701079   addons.xpi-utils    WARN    addMetadata: Add-on 
[email protected] is invalid: [Exception... "Component returned 
failure code: 0x80520006 (NS_ERROR_FILE_TARGET_DOES_NOT_EXIST) 
[nsIFile.isFile]"  nsresult: "0x80520006 
(NS_ERROR_FILE_TARGET_DOES_NOT_EXIST)"  location: "JS frame :: 
resource://gre/modules/addons/XPIInstall.jsm :: loadManifestFromFile :: 
line 925"  data: no] Stack trace: 
loadManifestFromFile()@resource://gre/modules/addons/XPIInstall.jsm:925 syncLoadManifestFromFile()@resource://gre/modules/addons/XPIProvider.jsm:940
addMetadata()@resource://gre/modules/addons/XPIProvider.jsm -> 
resource://gre/modules/addons/XPIProviderUtils.js:1173
processFileChanges()@resource://gre/modules/addons/XPIProvider.jsm -> 
resource://gre/modules/addons/XPIProviderUtils.js:1529
checkForChanges()@resource://gre/modules/addons/XPIProvider.jsm:3304
startup()@resource://gre/modules/addons/XPIProvider.jsm:2196
callProvider()@resource://gre/modules/AddonManager.jsm:253
_startProvider()@resource://gre/modules/AddonManager.jsm:728
startup()@resource://gre/modules/AddonManager.jsm:892
startup()@resource://gre/modules/AddonManager.jsm:298 observe()@jar:file:///usr/lib64/firefox/omni.ja!/components/addonManager.js 
:63
1565697701094   addons.xpi-utils    WARN    Could not uninstall invalid 
item from locked install location
Aug 13, 2019 12:01:44 PM org.openqa.selenium.remote.ProtocolHandshake 
createSession
INFO: Detected dialect: W3C
@Test - internal test: Chrome browser headless
Aug 13, 2019 12:01:46 PM cucumber.runtime.java.ObjectFactoryLoader 
loadSingleObjectFactory
  WARNING: Use deprecated reflections to load ObjectFactory.
setup headless ff: connection refused
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11- 
14T08:17:03'
System info: host: 'ifx-java-slave-browsers.latest-6llvz', ip: 
'10.125.24.3', os.name: 'Linux', os.arch: 'amd64', os.version: '3.10.0- 
862.el7.x86_64', java.version: '1.8.0_222'
Driver info: driver.version: FirefoxDriver

person Vr33ni    schedule 13.08.2019    source источник


Ответы (1)


Статья @Daniel Davison о шаблонах OpenShift для Selenium может предоставить вам все шаги, необходимые для использования openshift с Selenium в контейнерах Docker при создании масштабируемой платформы для Selenium.

Вот необходимые ссылки:

person DebanjanB    schedule 13.08.2019
comment
Я уже настроил его, но не использую Selenium Hub. Я только что установил firefox и chrome в свой образ докера и поместил их в безголовый режим - для Chrome он работает нормально. Так что я не уверен, что это руководство мне поможет. - person Vr33ni; 13.08.2019