量角器本地和全局安装表现不同

时间:2016-03-04 15:40:56

标签: javascript angularjs node.js selenium protractor

这是一个粗略的问题。我和两位开发人员已经工作了将近24小时。我有一个conf.js,我可以在终端导航到然后运行protractor conf.js(使用全局安装的副本),它运行完美。一次一个,每次成功测试后出现每个绿点,大约需要80秒。这就是它变得棘手的地方。

如果我强制通过执行(path of project)/node_modules/protractor/bin/protractor conf.js来运行Protractor的本地安装,那么它会激活,同时向我显示几个绿点,然后抛出一个关于无法挂钩角度的错误。由于grunt会查找并使用Protractor的本地副本,因此与我们的构建集成会造成麻烦。

为了使问题更加复杂,其他两个开发人员中的一个可以下载我的repo并在我的conf.js上运行本地量角器安装没问题。它100%有效。

Error while waiting for Protractor to sync with the page: "window.angular is 
undefined. This could be either because this is a non-angular page or because your 
test involves client-side navigation, which can interfere with Protractor's 
bootstrapping. See http://git.io/v4gXM for details"

我们检查了以下所有内容:

  • Protractor的本地和全局安装都是相同的版本,与npm一起安装。

    Richards-MacBook-Pro:protractor richardpressler$ npm ls protractor
    wear-test-web-framework@0.0.1 
    /path_to_project/wear-test-track0
    └── protractor@3.1.1 
    
    Richards-MacBook-Pro:protractor richardpressler$ npm ls -g protractor
    /usr/local/lib
    └── protractor@3.1.1 
    
  • Selenium是最新的。我们同时运行(path to project)/node_modules/protractor/bin/webdriver-manager updatewebdriver-manager update来更新本地和全球selenium服务器安装

  • 我尝试单独启动Selenium,然后将Protractor指向它,以便我可以看到输出,当我使用全局量角器(protractor conf.js运行conf.js时它看起来很棒),显示几个[Executing]语句,每个语句后跟一个[Done]语句。但是,当我使用(path to project)/node_modules/protractor/bin/protractor conf.js运行本地量角器二进制文件时,我发现Protractor能够连接到Selenium实例,但是没有做太多的事情:

当量角器输出如下所示:

Richards-MacBook-Pro:protractor richardpressler$ ../../node_modules/protractor/bin/protractor conf.js
Using the selenium server at http://127.0.0.1:4444/wd/hub
[launcher] Running 1 instances of WebDriver
Started
.......................

Selenium服务器只输出:

10:35:47.612 INFO - Selenium Server is up and running
10:35:49.479 INFO - Executing: [new session: Capabilities [{count=1, browserName=chrome}]])
10:35:49.487 INFO - Creating a new session for Capabilities [{count=1, browserName=chrome}]
Starting ChromeDriver 2.21.371459 (36d3d07f660ff2bc1bf28a75d1cdabed0983e7c4) on port 34848
Only local connections are allowed.
10:35:50.516 INFO - Done: [new session: Capabilities [{count=1, browserName=chrome}]]
10:35:50.532 INFO - Executing: [set script timeout: 11000])
10:35:50.537 INFO - Done: [set script timeout: 11000]

在比较项目中的全局命令行版本和本地安装版本时,Protractor是否有类似的不当行为?

由于

1 个答案:

答案 0 :(得分:4)

关于量角器,grunt,selenium等的所有依赖关系都在devDependencies中,所以当我最初运行npm install时,它根本没有安装所有的子依赖关系那些包裹。如果我将它们移动到package.json中的dependencies,然后重新运行npm install,它就像一个魅力。或者,在npm install --dev中使用这些依赖项运行devDependencies也可以。

有关dependenciesdevDependenciespeerDependencies之间差异的更多信息,请访问:What's the difference between dependencies, devDependencies and peerDependencies in npm package.json file?