Как запустить ночные часы против сафари? - PullRequest
0 голосов
/ 09 января 2019

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

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

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

MacOS: High Sierra 10.13.6

Safari: 12.0.2

Nightwatch: v1.0.18

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

{
  "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: Не удалось запустить сервер: необходимо указать хотя бы один аргумент конфигурации.

Ответы [ 2 ]

0 голосов
/ 18 апреля 2019

В 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,
      },
    },
  },
}
0 голосов
/ 14 января 2019

Получил некоторую помощь от команды 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. Запустить ночной дозор
...