Как запустить ночные часы против сафари?

Я не могу найти какую-либо действительную конфигурацию ночных часов для сафари, которая не включает всю банку Selenium. Документация о ночных часах гласит:

Использование Selenium Standalone Server раньше было стандартом де-фактора для управления различными драйверами и службами браузера, но запуск с Nightwatch 1.0 больше не требуется и не рекомендуется, если только вы не тестируете устаревшие браузеры, такие как Internet Explorer.

Сафари считается устаревшим браузером? У кого-нибудь есть пример рабочего конфигурационного файла nightwatch 1.x, который может запускать тесты против safari?

MacOS: высокая Сьерра 10.13.6

Safari: 12.0.2

Ночной дозор: v1.0.18

Мой текущий nightwatch.json, который работает для Chrome, но не для сафари:

{
  "src_folders": [
    "__tests__/e2e/tests"
  ],
  "output_folder": "__tests__/e2e/reports",
  "custom_commands_path": "",
  "custom_assertions_path": "",
  "page_objects_path": "",
  "globals_path": "",
  "webdriver": {
    "start_process": true
  },
  "test_settings": {
    "default": {
      "desiredCapabilities": {
        "browserName": "chrome",
        "javascriptEnabled": true,
        "acceptSslCerts": true,
        "chromeOptions": {
          "args": [
            "--window-size=1440,900"
          ]
        }
      }
    },
    "devChrome": {
      "launch_url": "https://DEV_HOST",
      "globals": {
        "env": "dev"
      },
      "webdriver": {
        "server_path": "node_modules/chromedriver/lib/chromedriver/chromedriver.exe",
        "port": 9515
      }
    },
    "devSafari": {
      "launch_url": "https://DEV_HOST",
      "globals": {
        "env": "dev"
      },
      "webdriver": {
        "server_path": "/usr/bin/safaridriver",
        "port": 9515
      }
    }
  }
}

Текущая ошибка, которую я получаю при запуске конфигурации devSafari: Не удалось запустить сервер: необходимо указать хотя бы один аргумент конфигурации.

1 ответ

Решение

Получила некоторую помощь от команды nightwatch на GitHub ( https://github.com/nightwatchjs/nightwatch-docs/issues/94), и теперь у меня есть рабочий пример файла конфигурации для Nightwatch 1.x и Safari 10+. ПРИМЕЧАНИЕ. Под "работой" я подразумеваю, что браузер открывается, и я вижу, что Nightwatch взаимодействует с ним. Тесты на самом деле не проходят так, как в Chrome, но, скорее всего, это связано с небольшими различиями в браузерах, которые можно устранить в самих тестах.

{
  "src_folders": [
     "__tests__/e2e/tests"
   ],
   "output_folder": "__tests__/e2e/reports",
   "custom_commands_path": "",
   "custom_assertions_path": "",
   "page_objects_path": "",
   "globals_path": "",

   "webdriver": {
     "start_process": true,
     "server_path": "/usr/bin/safaridriver",
     "port": 4445
   },

   "test_settings": {
     "default": {
       "desiredCapabilities": {
         "browserName": "safari",
         "javascriptEnabled": true,
         "acceptSslCerts": true
       }
     },
     "safari": {
       "launch_url": "localhost",
       "desiredCapabilities": {
         "browserName":"safari"
       },
       "globals": {
         "env": "dev"
       }
     }
   }
}
  1. Бежать: /usr/bin/safaridriver --enable
  2. Откройте Safari и выберите "Разработка"> "Разрешить удаленную автоматизацию", затем закройте Safari.
  3. Запустить ночной дозор

С Safari 10+ вам просто нужно использовать safari как browserName, Затем убедитесь, что вы указали правильную среду при выполнении тестов. Для моего конфига это означает передачу параметров --env safari, Вот мой nightwatch.conf.js:

module.exports = {
  src_folders: ['tests/e2e/specs'],
  output_folder: 'tests/e2e/reports',
  selenium: {
    start_process: true,
    server_path: require('selenium-server').path,
    host: '127.0.0.1',
    port: 4444,
    cli_args: {
      'WebDriver.chrome.driver': require('chromedriver').path,
    },
  },
  test_settings: {
    chrome: {
      desiredCapabilities: {
        browserName: 'chrome',
      },
    },
    safari: {
      desiredCapabilities: {
        browserName: 'safari',
        javascriptEnabled: true,
        acceptSslCerts: true,
      },
    },
  },
}
Другие вопросы по тегам