我在设置Selenium WebDriverJS时遇到了一些麻烦。我的目标是使用Javascript(节点)在Chrome浏览器上运行selenium测试。
我按照https://code.google.com/p/selenium/wiki/WebDriverJs以及https://code.google.com/p/chromedriver/wiki/GettingStarted
上的说明操作首先我下载了chromedriver,然后在终端上运行:
$ ./chromedriver
Starting ChromeDriver (v2.2) on port 9515
然后,我安装了selenium-webdriver:
$ npm install selenium-webdriver
npm http GET https://registry.npmjs.org/selenium-webdriver
npm http 304 https://registry.npmjs.org/selenium-webdriver
selenium-webdriver@2.35.0 node_modules/selenium-webdriver
然后,我启动了节点控制台并尝试构建webdriver实例
$ node
> var webdriver = require('selenium-webdriver')
undefined
> var driver = new webdriver.Builder().usingServer('http://localhost:9515/wd/hub').withCapabilities(webdriver.Capabilities.chrome()).build();
undefined
>
timers.js:103
if (!process.listeners('uncaughtException').length) throw e;
^
UnknownCommandError: unknown command: wd/hub/session
at new bot.Error (/selenium/node_modules/selenium-webdriver/lib/atoms/error.js:109:18)
at Object.bot.response.checkResponse (/selenium/node_modules/selenium-webdriver/lib/atoms/response.js:103:11)
at /selenium/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:133:20
at /selenium/node_modules/selenium-webdriver/lib/goog/base.js:1178:15
at webdriver.promise.ControlFlow.runInNewFrame_ (/selenium-webdriver/lib/webdriver/promise.js:1438:20)
at notify (/selenium/node_modules/selenium-webdriver/lib/webdriver/promise.js:328:12)
at notifyAll (/selenium/node_modules/selenium-webdriver/lib/webdriver/promise.js:297:7)
at fulfill (/selenium/
现在我被封锁了。有人可以帮帮我吗?我在这里缺少什么?
由于
答案 0 :(得分:13)
这里有很多事情。
默认情况下,chromedriver服务器处理/,而不是/ wd / hub的命令。所以你应该能够做到:
new webdriver.Builder().usingServer('http://localhost:9515').build();
如果您希望chromedriver与独立的Selenium服务器具有相同的签名,请使用--url-base=/wd/hub
启动它。
没有必要自己启动chromedriver - 如果您请求Chrome并省略服务器位置,selenium-webdriver会为您执行此操作(确保可以在您的系统PATH
上找到chromedriver):< / p>
new webdriver.Builder()
.withCapabilities(webdriver.Capabilities.chrome())
.build();