だから私はオープン ソース プロジェクト ( https://github.com/ahmednuaman/radian ) を持っていて、 Protractorを使用してローカルで正常に実行される e2e テストをいくつか持っています。
Sauce Labs のドキュメントに従って、それに応じてセットアップしました.travis.yml
。テストは、Protractor が Sauce Labs の Selenium サーバーに接続しようとするところまで実行されます。これは、エラーの簡単なスナップショットです。
Running "exec:e2e" (exec) task
Using the selenium server at ahmednuaman-radian:06dd4e07-0f52-4fdf-be5e-389f2117bbf5@localhost:4445
>>
>> timers.js:103
>> if (!process.listeners('uncaughtException').length) throw e;
>> ^
>> TypeError: Cannot read property 'length' of undefined
>> at HttpClient.send (/home/travis/.nvm/v0.8.26/lib/node_modules/protractor/node_modules/selenium-webdriver/http/index.js:62:16)
完全なジョブ ログは次のとおりです: https://travis-ci.org/ahmednuaman/radian/jobs/16250460
次に私がしたことは、これをローカルでエミュレートすることでした。Sauce Labs Connect のドキュメントを読み、最終的にこれを端末で実行しました。
java -jar ~/bin/Sauce-Connect.jar USERNAME PASSWORD
Travis の場合とまったく同じように、すべてが正常に開始されましたが、grunt e2e
タスクを実行して (Travis の構成をローカルで一致するように更新した後protractor.conf.coffee
)、Travis と同じエラーを受け取りました。スナップショットを次に示します。
Running "exec:e2e" (exec) task
Using the selenium server at ahmednuaman-radian:06dd4e07-0f52-4fdf-be5e-389f2117bbf5@localhost:4445
>>
>> /Users/ahmed/bin/node/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1542
>> throw error;
>> ^
>> TypeError: Cannot read property 'length' of null
>> at HttpClient.send (/Users/ahmed/bin/node/lib/node_modules/protractor/node_modules/selenium-webdriver/http/index.js:62:16)
私は周りにグーグルを持っていましたが、この問題を抱えている人を見つけることができませんでした。それで、それは私の設定ですか?分度器/ウェブドライバーの問題ですか?これに光を当てたいですか?