使用Visual Studio Team Services的量角器 - "找不到chrome binary"

时间:2017-05-26 15:57:20

标签: selenium protractor azure-devops selenium-chromedriver

我一直在尝试在 Visual Studio Team Services 上设置量角器,目前我正在构建运行.bat文件开始我的量角器测试。

当构建运行时,它会向我显示一条错误消息Could not find Chrome binary,并为我提供一个在我的目录中不存在的文件位置。

错误追溯:

2017-05-25T20:43:49.3521640Z ##[section]Starting: Run script protractor.bat
2017-05-25T20:43:49.3521640Z
===========================================================================
2017-05-25T20:43:49.3521640Z Task         : Batch Script
2017-05-25T20:43:49.3521640Z Description  : Run a windows cmd or bat script and optionally allow it to change the environment
2017-05-25T20:43:49.3521640Z Version      : 1.1.3
2017-05-25T20:43:49.3521640Z Author       : Microsoft Corporation
2017-05-25T20:43:49.3521640Z Help         : [More Information]
(https://go.microsoft.com/fwlink/?LinkID=613733)
2017-05-25T20:43:49.3521640Z     
============================================================================
2017-05-25T20:43:49.3601629Z ##[command]d:\a\1\s\protractor.bat 
2017-05-25T20:43:49.3761643Z 
2017-05-25T20:43:49.3761643Z d:\a\1\s>cd .\e2e 
2017-05-25T20:43:49.3761643Z 
2017-05-25T20:43:49.3761643Z d:\a\1\s\E2E>protractor conf.js 
2017-05-25T20:43:50.8302366Z [20:43:50] I/direct - Using ChromeDriver directly...
2017-05-25T20:43:50.8342360Z [20:43:50] I/launcher - Running 1 instances of WebDriver
2017-05-25T20:43:50.8342360Z [20:43:50] E/direct - Error code: 135
2017-05-25T20:43:50.8342360Z [20:43:50] E/direct - Error message: Could not find chromedriver at C:\NPM\Modules\node_modules\protractor\node_modules\webdriver-manager\selenium\chromedriver_2.25.exe
2017-05-25T20:43:50.8342360Z [20:43:50] E/direct - Error: Could not find chromedriver at C:\NPM\Modules\node_modules\protractor\node_modules\webdriver-manager\selenium\chromedriver_2.25.exe
2017-05-25T20:43:50.8342360Z     at Direct.getNewDriver (C:\NPM\Modules\node_modules\protractor\built\driverProviders\direct.js:65:27)
2017-05-25T20:43:50.8342360Z     at Runner.createBrowser (C:\NPM\Modules\node_modules\protractor\built\runner.js:197:43)
2017-05-25T20:43:50.8342360Z     at C:\NPM\Modules\node_modules\protractor\built\runner.js:276:30
2017-05-25T20:43:50.8342360Z     at _fulfilled (C:\NPM\Modules\node_modules\protractor\node_modules\q\q.js:834:54)
2017-05-25T20:43:50.8342360Z     at self.promiseDispatch.done (C:\NPM\Modules\node_modules\protractor\node_modules\q\q.js:863:30)
2017-05-25T20:43:50.8342360Z     at Promise.promise.promiseDispatch (C:\NPM\Modules\node_modules\protractor\node_modules\q\q.js:796:13)
2017-05-25T20:43:50.8342360Z     at C:\NPM\Modules\node_modules\protractor\node_modules\q\q.js:556:49
2017-05-25T20:43:50.8342360Z     at runSingle (C:\NPM\Modules\node_modules\protractor\node_modules\q\q.js:137:13)
2017-05-25T20:43:50.8342360Z     at flush (C:\NPM\Modules\node_modules\protractor\node_modules\q\q.js:125:13)
2017-05-25T20:43:50.8342360Z     at _combinedTickCallback (internal/process/next_tick.js:67:7)
2017-05-25T20:43:50.8342360Z [20:43:50] E/launcher - Process exited with error code 135
2017-05-25T20:43:50.8552361Z ##[error]Process completed with exit code 135.
2017-05-25T20:43:50.8582364Z ##[section]Finishing: Run script protractor.bat

当我在构建版本上安装Chromedriver时,它会将其安装到不同的文件位置: d:\a\1\s\node_modules\chromedriver\lib\chromedriver\chromedriver.exe

测试在本地运行良好但在我将其提交给VSTS时无法正常工作。

是否仍然要将chromedriver安装在不同的文件位置,或让Selenium在chromedriver的其他位置查看?

由于

3 个答案:

答案 0 :(得分:0)

conf.js中放置ChromeDriver可执行文件的相对路径。这是well-documented

答案 1 :(得分:0)

使用webdriver-manager附带的protractor包 - 它可以下载您想要的任何二进制版本 - https://www.npmjs.com/package/webdriver-manager

因此,在开始量角器测试之前最终会运行webdriver-manager update(只需确保如果您运行的是本地安装的量角器 - 您还可以使用本地安装的webdriver-manager进行更新)

答案 2 :(得分:0)

首先,根据日志,您使用的是作为服务运行的Hosted Build代理,但测试需要与UI进行交互,因此您无法使用Chrome进行Protractor测试托管构建代理。

您可以参考这种方式在您的计算机上设置私人构建代理:Deploy an agent on Windows

其次,您可以参考以下步骤安装chromedriver:

  1. 添加Npm任务(npm命令:install;参数:-g protractor
  2. 添加命令行任务(工具:webdriver-manager;参数:update --versions.chrome 2.25