#selenium-webdriver #protractor #e2e-testing
#selenium-веб-драйвер #транспортир #e2e-тестирование
Вопрос:
Выполнение Protractor E2E
тестов для обоих Chrome
и IE
затруднено.
Я могу запускать их отдельно, однако мне нужно запустить / остановить соответствующий сервер Chrome / IE webdriver перед запуском каждого теста.
В моем conf.js
файле я экспортирую параметры конфигурации следующим образом :
exports.config = {
seleniumAddress: 'http://localhost:4444/wd/hub',
specs: [
'spec/my-spec.js',
],
directConnect: false, // false when targeting IE, and selen addr is used
multiCapabilities: [
{
browserName: 'chrome'
}
,
{
browserName: 'internet explorer',
'version': '11'
}
]
}
Для стандартных тестов Chrome я могу запустить сервер Webdriver:
> webdriver-manager start
Но для IE я обнаружил способ запуска Webdriver IE следующим образом (да, довольно некрасиво):
java -Dwebdriver.ie.driver=C:ProjectsGSDashboard-E2ETestsnode_modulesprotractornode_moduleswebdriver-managerseleniumIEDriverServer_x64_2.53.1.exe -jar C:ProjectsGSDashboard-E2ETestsnode_modulesprotractornode_moduleswebdriver-managerseleniumselenium-server-standalone-2.53.1.jar
Затем я просто запускаю тесты транспортира:
protractor protractor.conf.js
Я ищу более чистый и плавный способ одновременного запуска обоих тестов IE / Chrome e2e.
Есть ли решение для этого?
Приветствуются любые советы / рекомендации….
****** ОБНОВЛЕНИЕ ******
Согласно приведенному ниже ответу, пытаюсь использовать seleniumArgs
следующим образом (где я могу указать jar
файл ИЛИ IEDriverServer_x64_2.53.1.exe
файл :
exports.config = {
//seleniumAddress: 'http://localhost:4444/wd/hub', // comment out
seleniumArgs: ['-Dwebdriver.ie.driver=C:ProjectsDashb-E2ETestsnode_modulesprotractornode_moduleswebdriver-managerseleniumIEDriverServer_x64_2.53.1.exe'],
allScriptsTimeout: 50000,
specs: [
'spec/MY-spec.js',
],
directConnect: false, // false when targeting IE, and selen addr is used
multiCapabilities: [
//{
// browserName: 'chrome',
,
{
browserName: 'internet explorer',
'version': '11'
}
]
}
НО запуск теста выдает эту ошибку в командной строке Windows:
E/launcher - The path to the driver executable must be set by the web driver.ie.driver system property; for more information, see https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver.
Итак, я до сих пор не понял, как запускать тесты IE и Chrome (последовательно).
с уважением, Боб
Ответ №1:
У меня была похожая проблема, и решением было запустить это:
обновление webdriver-manager — ie
После этого оба экземпляра IE11 и Chrome запускаются одновременно с:
multiCapabilities: [
{
browserName: 'chrome'
}
,
{
browserName: 'internet explorer',
'version': '11'
}
]
Ответ №2:
включить seleniumArgs: ['-Dwebdriver.ie.driver=pathtoIEdriver/IEDriverServer.exe']
имущество в conf.js и убрать seleniumAddress: 'http://localhost:4444/wd/hub'
.Если seleniumAddress не указан, то protractor автоматически запустит selenium server. Так что следующее будет вашим conf.js для запуска вашего теста транспортира в Chrome и ie.
exports.config = {
seleniumArgs: ['-Dwebdriver.ie.driver=node_modules/protractor/selenium/IEDriverServer.exe'],
specs: [
'spec/my-spec.js',
],
directConnect: false, // false when targeting IE, and selen addr is used
multiCapabilities: [
{
browserName: 'chrome'
}
,
{
browserName: 'internet explorer',
'version': '11'
}
]
}
Комментарии:
1. Вам необходимо указать правильный путь, по которому вы разместили IEDriverServer.exe файл в seleniumArgs.
2. Да, я убедился, что путь к ` IEDriverServer.exe `это действительно правильно. Я вручную скопировал и вставил полный путь в проводник Windows.
3. Итак, какую ошибку вы получаете, даже если вы указали правильный путь для IEDriverServer.exe
4. Действительно, другая ошибка.
[10:12:38] E/launcher - The path to the driver executable must be set by the web driver.ie.driver system property; for more information, see https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver. The latest version can be downloaded from http://selenium-release.storage.googleapis.com/index.html
5. Пожалуйста, смотрите Мой раздел **** ОБНОВЛЕНИЕ **** в исходном сообщении.