Не удалось установить соединение с расширением SafariDriver

Я проводил тесты e2e в веб-приложении AngularJS с использованием транспортира, тестируя Chrome и Firefox. При добавлении сафари в мой массив отображается следующее:

«Не удалось установить соединение с расширением SafariDriver»

Я нашел способ решить эту проблему локально, но, поскольку мы используем Codeship для автоматизации наших сборок, мне нужен способ решить эту проблему, а не вручную добавлять драйвер в селен и включать его в Safari.

Я использую селен 2.43.1

конфигурация:

    exports.config = {
  baseUrl: 'http://localhost:9001',
  multiCapabilities: [{
    'browserName': 'chrome'
  }, {
    'browserName': 'firefox'
  }, {
    'browserName': 'safari'
  }],
  specs: ['e2e/app.js']
};

package.json:

    {
  "name": "livingthevalues",
  "version": "0.0.0",
  "dependencies": {
    "express": "^4.9.7",
    "gzippo": "^0.2.0",
    "bower": "^1.3.8",
    "grunt": "^0.4.5",
    "grunt-cli": "^0.1.13",
    "grunt-autoprefixer": "^0.7.3",
    "grunt-concurrent": "^0.5.0",
    "grunt-contrib-clean": "^0.5.0",
    "grunt-contrib-compass": "^0.7.2",
    "grunt-contrib-concat": "^0.4.0",
    "grunt-contrib-connect": "^0.7.1",
    "grunt-contrib-copy": "^0.5.0",
    "grunt-contrib-cssmin": "^0.9.0",
    "grunt-contrib-htmlmin": "^0.3.0",
    "grunt-contrib-imagemin": "^0.8.1",
    "grunt-contrib-jshint": "^0.10.0",
    "grunt-contrib-uglify": "^0.4.0",
    "grunt-contrib-watch": "^0.6.1",
    "grunt-filerev": "^0.2.1",
    "grunt-google-cdn": "^0.4.0",
    "grunt-newer": "^0.7.0",
    "grunt-ng-annotate": "^0.3.0",
    "grunt-svgmin": "^0.4.0",
    "grunt-usemin": "^2.1.1",
    "grunt-wiredep": "^1.7.0",
    "jshint-stylish": "^0.2.0",
    "load-grunt-tasks": "^0.4.0",
    "time-grunt": "^0.3.1"
  },
  "devDependencies": {
    "chai": "^1.9.2",
    "chai-as-promised": "^4.1.1",
    "cucumber": "^0.4.4",
    "grunt-karma": "^0.9.0",
    "grunt-protractor-runner": "^1.1.4",
    "karma": "^0.12.17",
    "karma-chrome-launcher": "^0.1.4",
    "karma-jasmine": "^0.1.5",
    "karma-junit-reporter": "^0.2.2",
    "karma-mocha": "^0.1.6",
    "karma-phantomjs-launcher": "^0.1.4",
    "protractor": "^1.3.1",
    "protractor-cucumber": "^0.1.2",
    "sinon": "^1.11.0"
  },
  "engines": {
    "node": ">=0.10.0"
  },
  "scripts": {
    "test": "grunt test",
    "pree2e": "./node_modules/protractor/bin/webdriver-manager update",
    "e2e": "grunt test:e2e"
  }
}

команды, выполняемые ci:

Exporting Environment
0 min 2 sec
git clone --branch 'commentBox' --depth 50 [email protected]:MyTeam/myrepo.git ~/src/github.com/MyTeam/myrepo
0 min 1 sec
cd clone
0 min 1 sec
git checkout -qf 2ec65e3b32971d0f7f9de948c40f019f0629adea
0 min 1 sec
Preparing Dependency Cache
0 min 10 sec
Preparing Virtual Machine
0 min 5 sec
rvm use 2.0.0-p195
0 min 5 sec
bundle install
0 min 2 sec
nvm install 0.10.25
0 min 2 sec
nvm use 0.10.25
0 min 1 sec
npm install
0 min 7 sec
bower instal
0 min 7 sec
npm test
0 min 10 sec
npm run e2e

Спасибо - кажется, такая простая вещь, но не могу понять, почему она не работает.


person lg365    schedule 28.10.2014    source источник


Ответы (3)


На Mac расширение Selenium SafariDriver, которое вы раньше должны были устанавливать, теперь устарело. В El Capitan и Sierra Apple предоставляет собственный Safaridriver. Удалите предыдущее расширение safaridriver (если вы его установили) и включите новый safaridriver, выдержка из ссылки 2:

  • Убедитесь, что меню «Разработка» доступно. Его можно включить, открыв настройки Safari («Safari» > «Настройки» в строке меню), перейдя на вкладку «Дополнительно» и установив флажок «Показать меню «Разработка» в строке меню».
  • Включите удаленную автоматизацию в меню «Разработка». Это переключается через «Разработка»> «Разрешить удаленную автоматизацию» в строке меню.
  • Разрешите SafariDriver запустить службу webdriverd, на которой размещен локальный веб-сервер. Чтобы разрешить это, запустите /usr/bin/safaridriver один раз вручную и выполните запрос аутентификации. например в терминале: /usr/bin/safaridriver -p 8000

Кроме того, вам необходимо использовать Selenium 3.0 + (поддержка началась с версии 3.0.0-beta1), чтобы используйте новый драйвер сафари.

Примечание. Если у вас все еще есть проблемы, возможно, ознакомьтесь с Приложением в нижней части 2-я ссылка. Еще одно предостережение, с которым я столкнулся, новый сафаридрайвер поддерживает только один сеанс, поэтому maxSessions=# больше не поддерживается. Кроме того, если вы используете установку npm selenium-standalone, вы можете обновить версию selenium следующим образом.

selenium-standalone install --version=3.0.1 --baseURL=https://selenium-release.storage.googleapis.com

Затем загрузите концентраторы и узлы с флагом --version=3.0.1.

person Cynic    schedule 15.11.2016

Я борюсь именно с этой проблемой, пытаясь автоматизировать наши тесты против Safari 7.1. Мои исследования до сих пор приводят меня к мысли, что в Safari 7.1 была внедрена новая модель безопасности, чтобы сделать расширения более безопасными. Вот связанная тема fwiw. Я попытался использовать командную строку mvn для установки расширения SafariDriver, но мне это не удалось. Я попытался запустить простую командную строку, чтобы открыть Safari с расширением в качестве параметра, но затем вам будет предложено включить/установить его. (не годится для автоматических потоков). Еще один хак, который был предложен, заключался в том, чтобы перейти непосредственно к файлу plist, который Safari использует для настроек/расширений, но я не смог найти его на Mac 10.10. Мне очень не терпится узнать ответ здесь.

person user1814008    schedule 29.10.2014
comment
Ах, я вижу, это боль. Я установил его вручную, как они это делают в потоке, который отлично работает, просто проблема с частью автоматизации. Также не удалось найти plist, поэтому, если нет команды, которую нам не хватает, похоже, в данный момент мало что можно сделать с этим ... поговорю с некоторыми людьми и дам вам знать, если я могу найти решение - надеюсь, кто-то знает! - person lg365; 30.10.2014

Я использую Windows 7.
Необходимое условие: установите Safari в Windows.

  1. Перейдите на страницу http://docs.seleniumhq.org/download/.
  2. Прокрутите вниз -> Перейдите в раздел «SafariDriver» и загрузите «SafariDriver.safariextz».
  3. Дважды щелкните «SafariDriver.safariextz» (ранее загруженный)
  4. Safari откроется со всплывающим окном, содержащим кнопку «Установить» -> Нажмите кнопку «Установить».
  5. Теперь перейдите в «Настройки Safari», и вы увидите, что WebDriver (в моем случае WebDriver 2.48.0) установлен (флажок «Включить WebDriver» установлен))
  6. Теперь пришло время создать экземпляр SafariDriver и получить желаемый URL-адрес, как показано ниже:

    Драйвер WebDriver = новый SafariDriver();
    driver.get("https://www.packtpub.com/web-development/mastering-selenium-testing-tools-video");

person Ripon Al Wasim    schedule 18.04.2016