Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Selenium WebDriverJS,无法为Chrome构建webdriver_Javascript_Node.js_Selenium Webdriver_Selenium Chromedriver - Fatal编程技术网

Javascript Selenium WebDriverJS,无法为Chrome构建webdriver

Javascript Selenium WebDriverJS,无法为Chrome构建webdriver,javascript,node.js,selenium-webdriver,selenium-chromedriver,Javascript,Node.js,Selenium Webdriver,Selenium Chromedriver,我在设置Selenium WebDriverJ时遇到一些问题。我的目标是使用Javascript(节点)在Chrome浏览器上运行selenium测试 我正在按照上的说明以及 首先,我下载了chromedriver,并在终端上运行它: $ ./chromedriver Starting ChromeDriver (v2.2) on port 9515 然后,我安装了selenium webdriver: $ npm install selenium-webdriver npm http GET

我在设置Selenium WebDriverJ时遇到一些问题。我的目标是使用Javascript(节点)在Chrome浏览器上运行selenium测试

我正在按照上的说明以及

首先,我下载了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/
现在我被封锁了。有人能帮我吗?我错过了什么

谢谢这里的几件事

  • 默认情况下,chromedriver服务器在/而不是/wd/hub处处理命令。因此,您应该能够做到:

    new webdriver.Builder().usingServer('http://localhost:9515').build();
    
  • 如果希望chromedriver具有与独立Selenium服务器相同的签名,请使用
    --url base=/wd/hub
    启动它

  • 无需自己启动chromedriver-如果您请求Chrome并省略服务器位置,selenium webdriver将为您执行此操作(确保chromedriver可以在您的系统路径中找到):


  • 谢谢你的回答,我会试试这个!非常感谢,它工作得很好。现在,如果我可以问的话,有没有办法在代码中指定chromedriver的位置而不是使用系统路径?我不得不挖掘源代码,但这是值得的<代码>新建chrome.ServiceBuilder(路径到二进制)。build()是键:)
    new webdriver.Builder()
        .withCapabilities(webdriver.Capabilities.chrome())
        .build();