2014-10-28 3 views
1

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

«Не удалось установить соединение с расширением 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" 
    } 
} 

команда выполняется Х:

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 

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

ответ

2

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

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

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

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

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

А затем загрузочные хабы и узлы с флагом --version = 3.0.1.

2

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

+0

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

0

Я использую 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) установлен (Enable WebDriver флажок))
  6. Теперь пришло время для создания экземпляра SafariDriver и получить нужный URL, как показано ниже:

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

 Смежные вопросы

  • Нет связанных вопросов^_^