С транспортиром, как настроить конфигурацию интернет-браузера?
Я использую protractor 1.3.1 и запускаю iedriverserver.exe 2.43.0.0 с установленным IE11 (windows).
Это моя спецификация:
describe('quick test IE driver', function () {
it('should go to ng homepage', function () {
browser.driver.get('https://angularjs.org/');
var title =element(by.css('h1')).getText();
expect(title).toBe('HTML enhanced for web apps!');
});
});
И это мой protractor.conf.js:
exports.config = {
// The address of a running selenium server.
//seleniumAddress: 'http://localhost:4444/wd/hub',
capabilities: {
'browserName': 'internet explorer',
'platform': 'ANY',
'version': '11'
},
// Spec patterns are relative to the current working directly when
// protractor is called.
specs: ['main.spec.js'],
// Options to be passed to Jasmine-node.
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000,
isVerbose:true,
includeStackTrace:true
}
};
получить эту ошибку, хотя любые идеи для решения:
UnknownError: The path to the driver executable must be set by the webdriver.ie.driver system property;
Ответы
Ответ 1
Обновить веб-менеджер для IE
Первый шаг - обновить ie webdriver, используя команду webdriver manager.Open и запустить приведенную ниже команду
webdriver-manager update --ie
Перейдите в местоположение npm. На этом шаге перейдите в NPM_LOCATION (папка, где npm установлена в вашей системе. Перейдите к следующему пути "NPM_LOCATION\ node_modules\protractor\selenium". В этом месте проверьте наличие IEDriverServer.exe или нет.
Изменить для IE в conf.js
// conf.js exports.config = { seleniumAddress: 'http://localhost:4444/wd/hub', specs: ['specs.js'], capabilities: {
'browserName': 'internet explorer' // conf for internet explorer } }
// spec.js describe('Protractor Demo App', function() { it('should have a title', function() {
browser.get('http://juliemr.github.io/protractor-demo/');
expect(browser.getTitle()).toEqual('Super Calculator'); }); });
Теперь запустите protractor conf.js
Примечание. Убедитесь, что вы перезагрузили сервер с помощью → запуска веб-менеджера-менеджера
взято из: http://protractorsupport.blogspot.com/2015/05/use-protractor-with-internet-explorer.html
Ответ 2
Согласно файл конфигурации транспортира, значение конфигурации "seleniumArgs"
устарело.
Итак, чтобы получить один ответ со всей информацией, выполните следующие упрощенные действия:
-
Установите Protactor глобально:
npm install -g protractor
-
Запустите webdriver-manager update --ie
, чтобы обновить драйверы Selenium, используемые Protactor. Имейте в виду, что вы используете глобальный webdriver-manager
или локальный webdriver-manager
(i.e ./node_modules./bin/webdriver-manager update help
); они будут разархивировать драйверы в разных местах; только локальный будет распаковать в [Project dir]
-
Взгляните на журнал предыдущей команды. Он должен показать, что драйверы были распакованы в определенной папке. Перейдите в эту папку и найдите IEDriverServer. В моем случае это было: "[Project dir]\node_modules\protractor\node_modules\webdriver-manager\selenium\IEDriverServer_x64_X.XX.X.exe
. Вам нужно будет указать относительный путь к этому файлу на следующем шаге.
-
Внутри вашего файла conf.js
добавьте следующие ключи и значения. Обратите внимание на использование localSeleniumStandaloneOpts
, что означает, что вы должны удалить свойство seleniumAddress
, если оно у вас есть:
multiCapabilities : [
{
'browserName' : 'chrome'
}, {
'browserName' : 'internet explorer'
}
],
localSeleniumStandaloneOpts : {
jvmArgs : ["-Dwebdriver.ie.driver=<RELATIVE PATH TO IE DRIVER>"] // e.g: "node_modules/protractor/node_modules/webdriver-manager/selenium/IEDriverServer_x64_X.XX.X.exe"
},
Это все, что мне нужно было сделать. Я не запускаю сервер заранее, я просто запускаю protactor conf.js
. Теперь проще.
Ответ 3
Загрузите файл IEDriverServer.exe
Укажите в конфигурационном файле то же самое.
seleniumArgs: ['-Dwebdriver.ie.driver=<path to IEDriverServer.exe>']
Ответ 4
Я искал этот вопрос в течение нескольких часов, лучший способ:
1) скачать
webdriver-manager - обновить
Это должно загрузить драйвер из папки google.. selenium... и разместить его прямо в хорошем месте в локальном репозитории npm.
2) установите в файле config.js ваши тесты:
...
multiCapabilities: [
//{
// browserName: 'chrome',
// version: 'ANY'
//},
//{
// browserName: 'firefox',
// version: 'ANY'
//},
{
browserName: 'internet explorer',
version: 'ANY'
},
],
// For some IE functions you may need to specify defaultTimeoutInterval
...
3) настройка IE:
Следуйте за этим сообщением
http://jimevansmusic.blogspot.fr/2012/08/youre-doing-it-wrong-protected-mode-and.html
PS: об установке "защищенного режима" IE, важно иметь одинаковую настройку для всех зон. Я предпочитаю иметь защищенный режим 'on' для всех зон
4) исправить реестр
как описано здесь: http://heliumhq.com/docs/internet_explorer
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BFCACHE]
"Iexplore.exe" = DWORD: 00000000
5) Обновление IE 11 нарушает работу системы:
Моя последняя проблема заключалась в том, что "сервер не предоставил трассировку стека..." это связано с обновлением 17 декабря 2014 года. Удалите его, а затем хорошо.
https://code.google.com/p/selenium/issues/detail?id=3390
сумасшедший путь, чтобы он работал. Это не может быть так в долгосрочной перспективе, пожалуйста, прокомментируйте мой пост своими впечатлениями/отзывами.
Ричард
Ответ 5
Вот мой конфигурационный файл:
exports.config = {
seleniumAddress: 'http://127.0.0.1:4444/wd/hub',
capabilities: {
'browserName': 'internet explorer',
},
framework: 'jasmine',
// Spec patterns are relative to the current working directory when
// protractor is called.
specs: ['your_spec_file.js'],
};
Шаги для запуска в IE:
- Нужно два терминала в коде Visual Studio. В первом терминале запустите команду "запуск webdriver-manager", чтобы запустить сервер selenium.
- Во втором терминале, запустите ваш файл конфигурации js как: транспортир conffile_name.js
Это успешно запустит Internet Explorer. Спасибо