我一直在尝试在 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
的其他位置查看?
由于
答案 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:
install
;参数:-g protractor
)webdriver-manager
;参数:update --versions.chrome 2.25
)