現在、Protractor v.5.1.1、Node.js v.6.10.0があります
すべての分度器テストはウィンドウコンソールで動作しますが、STS IDEから実行しようとするとエラーが発生します。もちろん「webdriver-manager update」を実行しましたが、まったく役に立ちません。誰もこの問題を解決する方法を知っていますか?
「directConnect」を使用する場合としない場合のエラーの下
[22:21:48] I/launcher - Running 1 instances of WebDriver
[22:21:48] I/direct - Using ChromeDriver directly...
[22:21:48] E/direct - Error code: 135
[22:21:48] E/direct - Error message: Could not find update-config.json. Run 'webdriver-manager update' to download binaries.
[22:21:48] E/direct - Error: Could not find update-config.json. Run 'webdriver-manager update' to download binaries.
at IError (D:\STS_workspace\jgh\node_modules\protractor\built\exitCodes.js:5:1)
at ProtractorError (D:\STS_workspace\jgh\node_modules\protractor\built\exitCodes.js:10:9)
at BrowserError (D:\STS_workspace\jgh\node_modules\protractor\built\exitCodes.js:51:9)
at Direct.getNewDriver (D:\STS_workspace\jgh\node_modules\protractor\built\driverProviders\direct.js:62:31)
at Runner.createBrowser (D:\STS_workspace\jgh\node_modules\protractor\built\runner.js:194:43)
at q.then.then (D:\STS_workspace\jgh\node_modules\protractor\built\runner.js:338:29)
at _fulfilled (D:\STS_workspace\jgh\node_modules\q\q.js:834:54)
at self.promiseDispatch.done (D:\STS_workspace\jgh\node_modules\q\q.js:863:30)
at Promise.promise.promiseDispatch (D:\STS_workspace\jgh\node_modules\q\q.js:796:13)
at D:\STS_workspace\jgh\node_modules\q\q.js:556:49
[22:21:48] E/launcher - Process exited with error code 135
または
[21:19:23] I/launcher - Running 1 instances of WebDriver
[21:19:23] E/local - Error code: 135
[21:19:23] E/local - Error message: No update-config.json found. Run 'webdriver-manager update' to download binaries.
[21:19:23] E/local - Error: No update-config.json found. Run 'webdriver- manager update' to download binaries.
at IError (D:\STS_workspace\jgh\node_modules\protractor\built\exitCodes.js:5:1)
at ProtractorError (D:\STS_workspace\jgh\node_modules\protractor\built\exitCodes.js:10:9)
at BrowserError (D:\STS_workspace\jgh\node_modules\protractor\built\exitCodes.js:51:9)
at Local.addDefaultBinaryLocs_ (D:\STS_workspace\jgh\node_modules\protractor\built\driverProviders\local.js:40:23)
at Local.setupDriverEnv (D:\STS_workspace\jgh\node_modules\protractor\built\driverProviders\local.js:81:14)
at Local.setupEnv (D:\STS_workspace\jgh\node_modules\protractor\built\driverProviders\driverProvider.js:110:34)
at q.then (D:\STS_workspace\jgh\node_modules\protractor\built\runner.js:334:41)
at _fulfilled (D:\STS_workspace\jgh\node_modules\q\q.js:834:54)
at self.promiseDispatch.done (D:\STS_workspace\jgh\node_modules\q\q.js:863:30)
at Promise.promise.promiseDispatch (D:\STS_workspace\jgh\node_modules\q\q.js:796:13)
[21:19:23] E/launcher - Process exited with error code 135
私のconf.jsは次のようになります:
var SpecReporter = require('jasmine-spec-reporter').SpecReporter;
exports.config = {
// directConnect:true,
specs: ['spec4.js'],
framework: 'jasmine2' ,
onPrepare: function () {
jasmine.getEnv().addReporter(new SpecReporter({
spec: {
displayStacktrace: true,
displaySuccessesSummary: true,
displayFailuresSummary: true,
displayPendingSummary: true,
displaySpecDuration: true,
},
}));
},
jasmineNodeOpts: {
defaultTimeoutInterval: 25000,
print: function () {},
},
パスnode_modules/protractor/node_modules/webdriver-managerにSeleniumフォルダーはありませんが、「webdriver-update」:「webdriver-manager update」を追加したpackage.jsonがあります。これは、npm run webdriver-updateの出力です。
D:\STS_workspace\jgh>npm run webdriver-update
npm WARN invalid config proxy="http:"
npm WARN invalid config Must be a full url with 'http://'
npm WARN invalid config proxy="http:"
npm WARN invalid config Must be a full url with 'http://'
npm ERR! Windows_NT 10.0.14393
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "webdriver-update"
npm ERR! node v6.10.0
npm ERR! npm v3.10.10
npm ERR! path D:\STS_workspace\jgh\package.json
npm ERR! code ENOENT
npm ERR! errno -4058
npm ERR! syscall open
npm ERR! enoent ENOENT: no such file or directory, open 'D:\STS_workspace\jgh\package.json'
npm ERR! enoent ENOENT: no such file or directory, open 'D:\STS_workspace\jgh\package.json'
npm ERR! enoent This is most likely not a problem with npm itself
npm ERR! enoent and is related to npm not being able to find a file.
npm ERR! enoent
npm ERR! Please include the following file with any support request:
npm ERR! D:\STS_workspace\jgh\npm-debug.log
設定ファイルでdirectConnect
を使用しているか、local
ドライバープロバイダー(seleniumAddress
またはdirectConnect
を持たない)で起動しているようです。 webdriver-manager update
を実行する必要があります。
以前は、webdriver-manager update --standalone false --gecko false
でスタンドアロンまたはgeckoをダウンロードしないための追加のフラグがありました。ローカルドライバープロバイダー経由で起動している場合、これはもはや当てはまりません。 Seleniumスタンドアロンjarファイルが必要になります。
Package.jsonのスクリプトでこれを実行できます。何かのようなもの:
"scripts": {
"webdriver-update": "webdriver-manager update"
}
次に、npm run webdriver-update
でこれを実行します。バイナリが存在するかどうかをどのように確認しますか?プロジェクトで、node_modules/protractor/node_modules/webdriver-manager/Selenium/
に移動します。これは、update-config.json
とダウンロードしたバイナリが置かれている場所です。
次のように更新してみてください。node_modules/ protractorで確実に更新されます。
$ ./node_modules/protractor/bin/webdriver-manager update
プロジェクトフォルダで webdriver-manager with npx コマンドを実行するだけです;
npx webdriver-manager update
MacOSでは、seleniumAddressをProtractor設定ファイルに追加することでこのエラーを解決しました(以前にdirectConnectを使用していたので、コメントアウトしました)。
// directConnect: true,
// baseUrl: 'http://localhost:4000/',
seleniumAddress: 'http://localhost:4444/wd/hub/',
次のコマンドを実行してProtractorサーバーを起動します:$ webdriver-manager start
そして、別の端末ウィンドウで、次のようにテストを開始します:$ ng e2e
このコマンドを実行するだけで修正されます。npm run webdriver-update
は、node_modules/protractor
の下のnode_modulesセクションでwebdriverを更新します。
これらの2行が主な原因です。そのコマンドを実行してみてください。問題が解決するはずです。
[22:21:48] E/direct - Error message: Could not find update-config.json. Run 'webdriver-manager update' to download binaries.
[22:21:48] E/direct - Error: Could not find update-config.json. Run 'webdriver-manager update' to download binaries.
お役に立てば幸いです!