这是一个粗略的问题。我和两位开发人员已经工作了将近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 update
和webdriver-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是否有类似的不当行为?
由于
答案 0 :(得分:4)
关于量角器,grunt,selenium等的所有依赖关系都在devDependencies
中,所以当我最初运行npm install
时,它根本没有安装所有的子依赖关系那些包裹。如果我将它们移动到package.json中的dependencies
,然后重新运行npm install
,它就像一个魅力。或者,在npm install --dev
中使用这些依赖项运行devDependencies
也可以。
有关dependencies
,devDependencies
和peerDependencies
之间差异的更多信息,请访问:What's the difference between dependencies, devDependencies and peerDependencies in npm package.json file?