Nightwatch Selen Geckodriver - браузер не открывается - PullRequest
0 голосов
/ 19 сентября 2018

Я пытаюсь запустить ночные часы в Firefox.Мой конфигурационный файл настроен так:

module.exports = {
  "page_objects_path": "./page_objects",
  "selenium": { 
    "start_process": true, 
    "server_path": "../bin/selenium.jar",
    "host": "127.0.0.1",
    "port": 4444,
    "cli_args": {
      "webdriver.gecko.driver" : "../bin/geckodriver",
      "webdriver.chrome.driver" : "../bin/chromedriver",
      "webdriver.ie.driver" : "../bin/IEDriver"
    }
  },
  "test_settings": {
    // default settings will run with chrome headless
    "headless": {
      "screenshots": {
        "enabled": true, 
        "on_failure": true,
        //"on_error": false,
        "path": HEADLESS_SCREENSHOT_PATH 
      },
      "globals": {
        "waitForConditionTimeout": 15000 
      },
      "desiredCapabilities": { 
        "browserName": "chrome",
        "javascriptEnabled": true,
        "chromeOptions" : {
            "args" : ['--headless', '--disable-gpu', '--window-size=1920x1080'],
        }    
      }
    },

    "firefox": {
      "screenshots": {
        "enabled": true, 
        "on_failure": true,
        //"on_error": false,
        "path": FIREFOX_SCREENSHOT_PATH 
      },
      "globals": {
        "waitForConditionTimeout": 15000 
      },
        "desiredCapabilities": {
          "browserName": "firefox",
          "javascriptEnabled": true,
          "acceptSslCerts": true,
          "marionette": true
        }
      },

      "ie": {
        "screenshots": {
          "enabled": true, 
          "on_failure": true,
          //"on_error": false,
          "path": IE_SCREENSHOT_PATH 
        },
        "globals": {
          "waitForConditionTimeout": 15000 
        },
          "desiredCapabilities": {
            "browserName": "internet explorer",
            "javascriptEnabled": true,
            "acceptSslCerts": true,
          }
        },

    "chrome": {
      "screenshots": {
        "enabled": true, 
        "on_failure": true,
        //"on_error": false,
        "path": CHROME_SCREENSHOT_PATH 
      },
      "globals": {
        "waitForConditionTimeout": 15000 
      },
      "desiredCapabilities": {
        "browserName": "chrome",
        "javascriptEnabled": true,
        "chromeOptions" : {
            "args" : ['--start-maximized', '--incognito'],
        }   
       }
      },
    }
}

Chrome, Chrome Headless и IE все отлично работают, а Firefox - нет.Selenium запускается, но браузер не открывается.Это пример ошибок, которые возникают многократно, когда он пытается запустить тесты без открытого браузера:

   { message: 'Connection refused! Is selenium server started?\n',
     data: { value: [Object], status: 33 } } }
Error: Creating screenshot was not successful. Response was:
{ status: -1,
  value:
   { error: 'invalid session id',
     message: 'No active session with ID null',
     stacktrace: '' },
  errorStatus: 6,
  error: '' }

Я пытался обновить / понизить селен, geckodriver и firefox до нескольких разных версий каждого,В настоящее время есть селен 3.14.0, firefox 62, geckodriver 0.22.0, но пробовал несколько версий каждой, чтобы попробовать разные комбинации.Использование JDK 8.

Для справки, у меня также была такая же ошибка при первой попытке запустить ее в Internet Explorer, но я исправил ее, следуя разделу «Другие настройки» в https://github.com/nightwatchjs/nightwatch/wiki/Internet-Explorer-Setup, чтобы изменитьНастройки IE.Похоже, что в Firefox нет аналогичных инструкций для установки требований.

У кого-нибудь еще было подобное или нет решения?Большое спасибо

1 Ответ

0 голосов
/ 17 октября 2018

Попробуйте добавить .exe в webdriver.gecko.driver

 "webdriver.gecko.driver" : "../bin/geckodriver.exe",

По какой-то причине, когда для selenium start_process задано значение true, путь к geckodriver должен включать .exe

...