什么是安装selenium-webdriver与NodeJS + Selenium + Mocha(在Windows上)的理想位置?

什么是安装selenium-webdriverNodeJS + Selenium + Mocha (在Windows上)的理想位置?

我刚开始用Selenium来开发NodeJS。 outlook未来,我将与NodeJS + Selenium + Mocha合作

  1. 安装了node.js

     C:\Users\AtechM_03>node -v v6.11.2 
  2. 安装npm

     C:\Users\AtechM_03>npm -v 3.10.10 
  3. 按照http://www.nodeclipse.org/updates/configurationnodeclipse ,我的Project结构如下所示:

在这里输入图像描述

现在,我不知道安装selenium-webdriver的确切位置

  1. 根据( http://www.nodeclipse.org/updates/ )在默认位置安装selenium-webdriver (通过命令行)

     C:\Users\AtechM_03>npm install selenium-webdriver C:\Users\AtechM_03 `-- selenium-webdriver@3.5.0 +-- jszip@3.1.3 | +-- core-js@2.3.0 | +-- es6-promise@3.0.2 | +-- lie@3.1.1 | | `-- immediate@3.0.6 | +-- pako@1.0.5 | `-- readable-stream@2.0.6 | +-- core-util-is@1.0.2 | +-- inherits@2.0.3 | +-- isarray@1.0.0 | +-- process-nextick-args@1.0.7 | +-- string_decoder@0.10.31 | `-- util-deprecate@1.0.2 +-- rimraf@2.6.1 | `-- glob@7.1.2 | +-- fs.realpath@1.0.0 | +-- inflight@1.0.6 | | `-- wrappy@1.0.2 | +-- minimatch@3.0.4 | | `-- brace-expansion@1.1.8 | | +-- balanced-match@1.0.0 | | `-- concat-map@0.0.1 | +-- once@1.4.0 | `-- path-is-absolute@1.0.1 +-- tmp@0.0.30 | `-- os-tmpdir@1.0.2 `-- xml2js@0.4.17 +-- sax@1.2.4 `-- xmlbuilder@4.2.1 `-- lodash@4.17.4 npm WARN enoent ENOENT: no such file or directory, open 'C:\Users\AtechM_03\pack age.json' npm WARN AtechM_03 No description npm WARN AtechM_03 No repository field. npm WARN AtechM_03 No README data npm WARN AtechM_03 No license field. 
  2. 按照( https://dzone.com/articles/selenium-nodejs-and-mocha )在当前项目目录(通过命令行)安装selenium-webdriver

     C:\Users\AtechM_03\LearnAutmation\NodeProject>npm install selenium-webdriver NodeProject@0.1.0 C:\Users\AtechM_03\LearnAutmation\NodeProject `-- selenium-webdriver@3.5.0 +-- jszip@3.1.4 | +-- core-js@2.3.0 | +-- es6-promise@3.0.2 | +-- lie@3.1.1 | | `-- immediate@3.0.6 | +-- pako@1.0.6 | `-- readable-stream@2.0.6 | +-- core-util-is@1.0.2 | +-- inherits@2.0.3 | +-- isarray@1.0.0 | +-- process-nextick-args@1.0.7 | +-- string_decoder@0.10.31 | `-- util-deprecate@1.0.2 +-- rimraf@2.6.2 | `-- glob@7.1.2 | +-- fs.realpath@1.0.0 | +-- inflight@1.0.6 | | `-- wrappy@1.0.2 | +-- minimatch@3.0.4 | | `-- brace-expansion@1.1.8 | | +-- balanced-match@1.0.0 | | `-- concat-map@0.0.1 | +-- once@1.4.0 | `-- path-is-absolute@1.0.1 +-- tmp@0.0.30 | `-- os-tmpdir@1.0.2 `-- xml2js@0.4.19 +-- sax@1.2.4 `-- xmlbuilder@9.0.4 npm WARN NodeProject@0.1.0 No repository field. 
  3. 通过first_test.js NodeJS-Selenium编写我的第一个程序为first_test.js ,并且执行得很好。

码:

  var webdriver = require('selenium-webdriver'); var driver = new webdriver.Builder(). withCapabilities(webdriver.Capabilities.chrome()). build(); driver.get('http://www.google.com'); driver.findElement(webdriver.By.name('q')).sendKeys('simple programmer'); driver.findElement(webdriver.By.name('q')).submit(); driver.quit(); 

执行:

  C:\Users\AtechM_03\LearnAutmation\NodeProject\Selenium>node first_test.js C:\Users\AtechM_03\LearnAutmation\NodeProject\Selenium> 

我的问题 :

  • 我怎样才能知道从哪个位置的selenium-webdriver是Testcase得到执行?
  • 我怎样才能完全删除/卸载额外的selenium-webdriver安装?
  • 我怎样才能生成一些粒度跟踪级别的日志,以了解发生了什么?

Selenium-Java绑定中,我添加了项目级别的jars ,与Selenium-Python绑定一样, PyDev模块默认绑定了Python Home到Eclipse。

任何build议/指针将有所帮助。

我怎么知道从哪个位置的seleniumwebdriver是Testcase得到执行

nodejs的包search位置顺序如下:

  1. 项目本地包,在/ node_modules
  2. nodejs全局包,在/ node_modules,你可以通过commmand得到这个值:npm config get prefix
  3. nodejs内置模块,它位于node.exe内部

如果你的项目本地包包含了这个包,nodejs将从本地pacakges使用它,否则使用if从全局包,如果gloal包没有这个包,noejs会报告模块的“selenium-webdriver”找不到错误。

我怎样才能完全删除/卸载额外的selenium-webdriver安装

  1. 一般来说,要卸载项目本地包,在项目文件夹下执行npm uninstall selenium-webdriver,或者使用npm卸载selenium-webdriver -g卸载全局包。

如何生成一些粒度跟踪级日志,以了解发生了什么

实际上,selenium服务器提供每个seleniumAPI调用的详细日志,不知道它是你想要的。
在这里输入图像描述

对于nodejs程序,每个nodejs项目都可以有一个package.json,它像java的pom.xml来pipe理依赖项。 要为新项目初始化一个package.json,只需要在命令行下执行项目文件夹下的'npm init'。 然后使用默认值或更改每个问题,因为所有,一个package.json文件创build项目文件夹下(您可以随时修改)。

当安装项目的依赖项时,切换到项目文件夹,使用'npm install -S'选项-S意味着将这个包作为dependency添加到package.json

用自动脚本提交pakcage.json来编码repo,当其他人将repo克隆到本地时,他只需要在package.json里面的文件夹下执行'npm install'。 他将得到安装package.json的所有依赖。

在npm安装后执行完成。 你会发现一个新的文件夹:node_modules将在项目文件夹下,node_modules文件夹是存放项目依赖项的地方。 node_modules下名为package name的文件夹是pakcage的安装path(提醒不要提交node_modules文件夹到coder repo)

当脚本通过require('')导入一个包/模块时,它将从这个node_modules文件夹中加载模块,然后从父文件夹中依次加载根path,nodejs globel包文件夹和nodejs内置模块。

更多的细节你可以find: https : //docs.npmjs.com/