2015-03-23 3 views
3

Я выполнил инструкции по адресу Setting up PhantomJS.Webdriver не может создать сеанс с phantomjs

Пожалуйста, найдите структуру каталогов следующим образом

吽 find . -name phantomjs; ll 
./node_modules/.bin/phantomjs 
./node_modules/phantomjs 
./node_modules/phantomjs/bin/phantomjs 
./node_modules/phantomjs/lib/phantom/bin/phantomjs 
total 16 
-rw-r--r-- 1 sarbbo Y\Domain Users 1269 Mar 23 12:02 specs.js 
drwxr-xr-x 4 sarbbo Y\Domain Users 136 Mar 23 12:08 node_modules 
-rw-r--r-- 1 sarbbo Y\Domain Users 204 Mar 23 12:25 conf.js 

содержимое conf.js как ниже упоминается.

exports.config = { 
    seleniumAddress: 'http://localhost:4444/wd/hub', 
    specs: ['specs.js'], 
    capabilities: { 
    'browserName': 'phantomjs', 
    'phantomjs.binary.path': require('phantomjs').path 
    } 
} 

Работы, как требуется для capabilities: {'browserName': 'chrome'}

Когда protractor conf.js является excuted, отображается следующее сообщение об ошибке:

от WebDriver-менеджер [WebDriver-менеджер был запущен с webdriver-manager start командой ]

12:41:41.043 INFO - Executing: [new session: Capabilities [{phantomjs.binary.path=/Users/sarbbo/GitHub/protractor/node_modules/phantomjs/lib/phantom/bin/phantomjs, count=1, browserName=phantomjs}]]) 
12:41:41.052 INFO - Creating a new session for Capabilities [{phantomjs.binary.path=/Users/sarbbo/GitHub/protractor/node_modules/phantomjs/lib/phantom/bin/phantomjs, count=1, browserName=phantomjs}] 
12:41:41.054 WARN - Exception thrown 
java.util.concurrent.ExecutionException: org.openqa.selenium.WebDriverException: java.lang.reflect.InvocationTargetException 
Build info: version: '2.44.0', revision: '76d78cf', time: '2014-10-23 20:02:37' 
System info: host: 'rushpress-lm', ip: '10.73.199.247', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.10.2', java.version: '1.8.0_25' 
Driver info: driver.version: unknown 
    at java.util.concurrent.FutureTask.report(FutureTask.java:122) 
    at java.util.concurrent.FutureTask.get(FutureTask.java:192) 
    at org.openqa.selenium.remote.server.DefaultSession.execute(DefaultSession.java:175) 
    at org.openqa.selenium.remote.server.DefaultSession.<init>(DefaultSession.java:111) 
    at org.openqa.selenium.remote.server.DefaultSession.createSession(DefaultSession.java:88) 
    at org.openqa.selenium.remote.server.DefaultDriverSessions.newSession(DefaultDriverSessions.java:108) 
    at org.openqa.selenium.remote.server.handler.NewSession.handle(NewSession.java:57) 
    at org.openqa.12:41:41.059 WARN - Exception: org.openqa.selenium.browserlaunchers.Proxies 

и по транспортир ОШИБКА - Не удается запустить сеанс WebDriver.

/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/atoms/error.js:113 
    var template = new Error(this.message); 
       ^
UnknownError: org.openqa.selenium.browserlaunchers.Proxies 
    at new bot.Error (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/atoms/error.js:113:18) 
    at Object.bot.response.checkResponse (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/atoms/response.js:106:9) 
    at /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:152:24 
    at /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/goog/base.js:1582:15 
    at [object Object].webdriver.promise.ControlFlow.runInNewFrame_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1654:20) 
    at notify (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:465:12) 
    at notifyAll (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:442:7) 
    at resolve (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:420:7) 
    at fulfill (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:535:5) 
    at /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/goog/base.js:1582:15 
==== async task ==== 
WebDriver.createSession() 
    at Function.webdriver.WebDriver.acquireSession_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:149:22) 
    at Function.webdriver.WebDriver.createSession (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:123:30) 
    at Builder.build (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/builder.js:294:22) 
    at DriverProvider.getNewDriver (/usr/local/lib/node_modules/protractor/lib/driverProviders/driverProvider.js:50:7) 
    at Runner.createBrowser (/usr/local/lib/node_modules/protractor/lib/runner.js:178:37) 
    at /usr/local/lib/node_modules/protractor/lib/runner.js:259:24 
    at _fulfilled (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:797:54) 
    at self.promiseDispatch.done (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:826:30) 
    at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:759:13) 
[launcher] Process exited with error code 1 

Любой указатель будет очень полезен.

Благодаря

ответ

3

Обновление транспортира решить проблему, которая использует Селен-сервера автономный-2.45.0.jar

Вы, возможно, потребуется выполнить следующие команды с sudo.

npm i protractor -g 
webdriver-manager update 

Update 26-MAR-2015

Вышеприведенные хорошо работает с phantomjs-1.9.8, но не phantomjs-2.0.0. Я обновил phantomjs version локально и установил локальную копию.

Такая же проблема произошла. Похоже, Селен-сервера автономный-2.45.0.jar не совместим с phantomjs-2.0.0


TL; DR

В поисках решения я пришел через

Откат назад до версии 2.43.1 устраняет проблему, поэтому я подозреваю, что изменение 2.44.0 нарушил abilit y, чтобы использовать PhantomJS на сетке.

на Issue 8102: PhantomJS Doesn't Work on Selenium Grid 2.44.0

selenium-server-standalone присутствует в /usr/local/lib/node_modules/protractor/selenium в моей системе также selenium-server-standalone-2.44.0.jar

Итак, я попытался посмотреть на понижение selenium-server-standalone через webdriver-manager, но может не найти подходящий вариант ,

吽 webdriver-manager --help 
Usage: webdriver-manager <command> 
Commands: 
    update: install or update selected binaries 
    start: start up the selenium server 
    status: list the current available drivers 

Options: 
    --out_dir  Location to output/expect       [default: "/usr/local/lib/node_modules/protractor/selenium"] 
    --seleniumPort Optional port for the selenium standalone server 
    --ignore_ssl  Ignore SSL certificates       [default: false] 
    --proxy   Proxy to use for the install or update command 
    --alternate_cdn Alternate CDN to the binaries 
    --standalone  Install or update selenium standalone    [default: true] 
    --chrome   Install or update chromedriver     [default: true] 
    --ie    Install or update IEDriver      [default: false] 

Please specify one command 

Я скачал selenium-server-standalone-2.43.1.jar через curl на /usr/local/lib/node_modules/protractor/selenium

sudo curl -O https://selenium-release.storage.googleapis.com/2.43/selenium-server-standalone-2.43.1.jar 

Однако при запуске WebDriver-менеджер, с помощью webdriver-manager start команды, появится следующее сообщение.

Selenium Standalone is not present. Install with webdriver-manager update --standalone 

Я просто dowloaded в selenium-server-standalone-2.43.1.jar, но почему webdriver-manager жалуется?

Взглянув в WebDriver-менеджер кода в /usr/local/lib/node_modules/protractor, я заметил следующее:

if (!binaries.standalone.exists) { 
    console.error('Selenium Standalone is not present. Install with ' + 
     'webdriver-manager update --standalone'); 
    process.exit(1); 
} 

Он пытается сопоставить существование selenium-server-standalone в соответствии с /usr/local/lib/node_modules/protractor/config.json

Вслед было содержание /usr/local/lib/node_modules/protractor/config.json

{ 
    "webdriverVersions": { 
    "selenium": "2.44.0", 
    "chromedriver": "2.14", 
    "iedriver": "2.44.0" 
    } 
} 

Об обновлении транспортир/usr/local/lib/node_modules/protractor/config.json получил обновлен до

{ 
    "webdriverVersions": { 
    "selenium": "2.45.0", 
    "chromedriver": "2.14", 
    "iedriver": "2.45.0" 
    } 
} 

И затем выполнив webdriver-manager update установлен selenium-server-standalone-2.45.0.jar вместе с chromedriver.


Теперь на выполнение protractor conf.js он выполняется, как ожидалось.

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