Предпосылка · Что я хочу реализовать
Я пытаюсь автоматизировать тестирование с помощью Selenium × Node.js, но оно заблокировано на этапе расследования ...
среда тестирования
- Mac OS10.12.6
- Узел 8.11.1
- Selenium Server 3.12.0
- Selenium WebDriver 4.0.0
- ChromeDriver 2.38
Что я сделал
1.Установка Node.js
С официального сайта
2.Установка selenium-webdriver
Установка через npm
$ npm install selenium-webdriver
3.Установка selenium-server
Установка через Homebrew
$ brew install selenium-server-standalone
4.Установка ChromeDriver
ChromeDriver - WebDriver для Chrome
→ Переместить файл после загрузки драйвера
$ mv /Users/username/Downloads/chromedriver ./
$ ls -la
total 31920
drwxr-xr-x 7 username staff 238 5 24 17:42 .
drwxr-xr-x+ 55 username staff 1870 5 24 17:42 ..
-rwxr-xr-x@ 1 username staff 11917200 4 20 16:39 chromedriver
drwxr-xr-x 41 username staff 1394 5 24 16:45 node_modules
-rw-r--r-- 1 username staff 9367 5 24 16:45 package-lock.json
5,Запустите Selenium Server
$ selenium-server -port 4444 & [1] 33415 C02SY1XFGTFJ: имя пользователя selenium $ 18: 04: 14.512 INFO [GridLauncherV3.launch] - Информация о сборке Selenium: версия:'3.11.0', редакция: 'e59cfb3' 18: 04: 14.513 INFO [GridLauncherV3 $ 1.launch] - Запуск автономного сервера Selenium через порт 4444 2018-05-24 18: 04: 14.624: INFO :: main: Регистрация инициализирована@ 441ms to org.seleniumhq.jetty9.util.log.StdErrLog 18: 04: 14.882 INFO [SeleniumServer.boot] - Добро пожаловать в Selenium для рабочих групп .... 18: 04: 14.882 INFO [SeleniumServer.boot] - Selenium Server isи работает через порт 4444
Возникают проблемы · Сообщения об ошибках
Записать тестовый код в качестве образца
$ vim sample.js
// Initialization of WebDriver
const webdriver = require('selenium-webdriver');
// Browser selection
const browser = new webdriver.Builder().forBrowser('chrome').build();
// Get page title
browser.get('http://example.selenium.jp/reserveApp/').then(()=>{
browser.getTitle().then(title => console.log('Page title:',title))
});
// Exit the browser
browser.close();
browser.quit();
Когда вы выполняете вышеуказанный код, ...
$ node sample.js
(node:13216) UnhandledPromiseRejectionWarning: NoSuchSessionError: no such session
(Driver info: chromedriver=2.38.552518 (183d19265345f54ce39cbb94cf81ba5f15905011),platform=Mac OS X 10.12.6 x86_64)
at Object.checkLegacyResponse (/Users/ko-kamenashi/selenium/node_modules/selenium-webdriver/lib/error.js:585:15)
at parseHttpResponse (/Users/ko-kamenashi/selenium/node_modules/selenium-webdriver/lib/http.js:533:13)
at Executor.execute (/Users/ko-kamenashi/selenium/node_modules/selenium-webdriver/lib/http.js:468:26)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
(node:13216) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
(node:13216) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Я получил ошибки.Что я должен делать?Не могли бы вы помочь мне?Спасибо за ваше чтение.