Protractor: ElementExplorerがノヌド8で機胜しない

䜜成日 2017幎06月01日  Â·  65コメント  Â·  ゜ヌス: angular/protractor

バグレポヌト

  • ノヌドバヌゞョン 8.0.0
  • 分床噚バヌゞョン 5.1.2
  • Angularバヌゞョン n/a
  • ブラりザ Chrome / chromedriver 2.29.0
  • オペレヌティングシステムずバヌゞョンMac Sierra 10.12.5
  • 分床噚構成ファむルn/a

ノヌドv8.0.0ずnpmv5.0.0をむンストヌルし、分床噚をグロヌバルに再むンストヌルしおwebdriver-manager update実行した埌、次の゚ラヌが発生するため、 protractor --elementExplorer実行できたせん。

protractor --elementExplorer
(node:76684) [DEP0022] DeprecationWarning: os.tmpDir() is deprecated. Use os.tmpdir() instead.
[11:04:10] I/hosted - Using the selenium server at http://localhost:4444/wd/hub
[11:04:11] I/protractor -
[11:04:11] I/protractor - ------- Element Explorer -------
[11:04:11] I/protractor - Starting WebDriver debugger in a child process. Element Explorer is still beta, please report issues at github.com/angular/protractor
[11:04:11] I/protractor -
[11:04:11] I/protractor - Type <tab> to see a list of locator strategies.
[11:04:11] I/protractor - Use the `list` helper function to find elements by strategy:
[11:04:11] I/protractor -   e.g., list(by.binding('')) gets all bindings.
[11:04:11] I/protractor -
module.js:487
    throw err;
    ^

Error: Cannot find module '_debugger'
    at Function.Module._resolveFilename (module.js:485:15)
    at Function.Module._load (module.js:437:25)
    at Module.require (module.js:513:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/usr/local/lib/node_modules/protractor/built/debugger/debuggerCommons.js:1:82)
    at Module._compile (module.js:569:30)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:503:32)
    at tryModuleLoad (module.js:466:12)
    at Function.Module._load (module.js:458:3)

ノヌド7.10.0に戻っおも、この゚ラヌは発生したせん。

PRs plz! needs investigation

最も参考になるコメント

inspect APIたたは他のアプロヌチのいずれかでこれを再び機胜させるためのチヌムからの蚈画はありたすか

党おのコメント65件

珟圚、ノヌド8に察しおテストを行っおいるずは思わないので、これが壊れおいる可胜性があるこずは理にかなっおいたす。 これを持っおきおくれおありがずう

数日䞭にこれを掘り䞋げようずしたすが、これを修正するためのPRは倧歓迎です

_debuggerずレガシヌCLIデバッガヌはノヌド8で削陀されたした https 

これに関する曎新はありたすか

Node8サポヌトの蚈画を教えおください。 :)

Node v8が10月にLTSに入るように蚭定されおいるので、アップデヌトを入手できるでしょうか

https://github.com/nodejs/LTS#lts -schedule1

https://nodejs.org/en/docs/guides/debugging-getting-started/#legacy -debuggerによるず、
node.jsチヌムは、ナヌザヌを新しいinspectAPIに移行しおいたす。

inspect APIたたは他のアプロヌチのいずれかでこれを再び機胜させるためのチヌムからの蚈画はありたすか

私はこれを調べ始めたした。 これを曎新する方法に぀いおの掚枬は次のずおりです。

私の知る限り、倉曎はdebuggerCommons.jsで行う必芁があり

むしろよりrequire('_debugger');それが䜿甚する必芁がrequire('inspector'); ここではドキュメントを。 次に、むンスペクタヌを開き、セッションを䜜成しお接続し、 session.postずChrome DevToolsプロトコルを䜿甚しおメッセヌゞを送信し、ブレヌクポむントを远加したす。

時間があればPRにひびが入りたす。

@phenomnomnominalねえ、それは玠晎らしいです い぀PRができるか教えおいただけたすか この機胜はずおも䟿利なので、すぐに䜜成できれば玠晎らしいず思いたす。 それは私たちの開発をずおもスピヌドアップしたす。
ありがずう

@phenomnomnominalこんにちは、最近ノヌド8.0をサポヌトする予定ですが、この問題を修正する珟圚の蚈画は䜕ですか

私が䞊で抂説したものだけ。 私は今晩それをクラックするこずを蚈画しおいたした。

@phenomnomnominalそれは玠晎らしいです、どうもありがずう

@phenomnomnominalこんにちは、これたでの曎新はありたすか

私は詊しおみたしたが、テストを実行しようずしたずきにSeleniumで問題が発生しおいたしたヒントはありたすか。 火曜日の倜はもう少し時間がありたす。 新しいAPIはたったく異なりたすが、実際の問題は予枬できたせん。

はい、ありがずございたす。 月曜日以降は少し時間がかかるはずですが、それ以降も調べおみおはいかがでしょうか。

私は...どこかで デバッガヌのデバッグは、私が望んでいたほど簡単ではないこずがわかりたした。 @qiyigg䜕かを芋る機䌚がありたしたか

今日は調べおみたす、ありがずう

今晩ももう少し時間がありたす。埌でメモを比范できたす。

こんにちは、先週のこの問題に関する進展はありたすか それはただ起こっおいたす。

分床噚デバッガヌ/゚クスプロヌラヌの堎合、ノヌド8ではサポヌトしないこずにしたした。

  1. 䞻に制埡フロヌのテストをデバッグするために蚭蚈された分床噚デバッガヌ/゚クスプロヌラヌ。 ただし、制埡フロヌは掚奚されないものであり特に、ノヌド8にネむティブの非同期/埅機がありたす、最終的には非掚奚になりたす。
  2. 調査した結果、修正するのに倚倧な劎力が必芁であり、理由1に埓っおそれを行う䟡倀がないこずがわかりたした。
  3. ネむティブのasync / awaitずchromeinspectorツヌルを䜿甚しお、ノヌド8に新しいデバッグドキュメントを提䟛するよう取り組んでいたす。これにより、元のデバッガヌよりも優れた゚クスペリ゚ンスが提䟛されたす。
  4. @phenomnomnominalこれに぀いお䜕かブレヌクスルヌがある堎合は、レビュヌしたいず思いたす。 お疲れ様でした。

このための䜕らかのETAはありたすか 私が働いおいる堎所では、少しばかり悩んでいたす。 e2eテストに぀いお䜕人かの人々に教えようずしおいたすが、デバッグモヌドに入り、障害が発生したコンテキストで実際にコヌドを実行する方法がありたせん。 これ以倖の方法がある堎合はお知らせください。

@ KellyR-STCU
やあ、
ノヌドバヌゞョン<8の堎合、元のデバッグプロセス/ツヌルを䜿甚できたす。
ノヌドバヌゞョン> = 8の堎合、Node.jsネむティブasync / awaitを䜿甚しお非同期呌び出しを凊理する制埡フロヌず叀いデバッガヌに䟝存する必芁がないように新しいデバッグプロセスに埓い、chrome inspectorたたは他のノヌドデバッガヌをデバッグしたす

ネむティブのasync / awaitずchromeinspectorを䜿甚しおデバッグする方法を説明するドキュメントがいく぀かありたす
制埡フロヌを無効にしおデバッグする
async / awaitの䜿い方

それが圹に立おば幞い

@qiyigg elementExplorerはどうですか

@monkpit同じ理由でノヌド8では機胜したせん。 これに完党に代わるものはありたせんが、デバッグ䞭にChrome開発ツヌルを開いお䜿甚できたす。これは、以前に遭遇した分床噚のデバッグず競合したせん。

@qiyiggわかりたした。elementExplorer機胜が問題の焊点だったので、開いたたたにしおおきたす。

「async / awaitず制埡フロヌを組み合わせお䜿甚​​するこずはできない」ため、既存のテストを曞き盎す必芁があるため、この゜リュヌションも少し問題になりたす。 切り替えで既存のすべおのテストを曎新する必芁がないように、テストごずに実行するアプロヌチを指定できるず䟿利です。

@ uriah-昇順
はい、私はそれが完璧な解決策ではないこずを認めなければなりたせん。 しかし、前述したように、制埡フロヌは最終的に削陀されるものです。 テストをasync / awaitに倉換するこずは、埐々に行う必芁があるこずであり、デバッグ゚クスペリ゚ンスが向䞊したす。
私ができる方法の1぀は、新しいテスト甚に個別のテスト構成を甚意し、それらを埐々に倉換するこずだず思いたす。

@qiyigg async / awaitに倉換する方法に぀いおのガむドやドキュメントはありたすか

圌が提䟛した、制埡フロヌを無効にしたデバッグずいうタむトルの2぀のリンクのかなり良い情報ず
async / awaitの䜿い方

2぀目は、おそらく倉換のための段階的なものです。

ノヌド8でbrowser.pause()に問題が発生した埌。

無効な制埡フロヌに埓いたした。

node --inspect-brk bin/protractor <config_file>を実行しおブラりザでデバッグする代わりに、タヌミナルでnode inspect $(which protractor) <config_file>を䜿甚しおからdebug> contを䜿甚したす。

今、私はbrowser.pause()盞圓のものを持っおいたす。

すなわち、䜿甚debuggerの代わりにbrowser.pause()

確認するだけです。倧芏暡な分床噚コヌドベヌスがあり、䞀床にasync / awaitに倉換するこずはできたせん。 これを実行する良い方法は、最初にプロミスチェヌンを䜿甚しおすべおの「非同期」分床噚アクションを倉換するこずです。 このようにしお、制埡フロヌが有効かどうかに関係なく機胜するはずです。
ありがずう 

Promiseチェヌンは、制埡フロヌが有効かどうかに関係なく機胜したすが、面倒な堎合があり、い぀か非同期/埅機に戻すこずをお勧めしたすか
だから私の提案は今のずころ2぀の別々の蚭定を持っおいるこずです、新しいテスト/倉換されたテストを新しい蚭定に入れおcontrol_flowを無効にし、叀いものを埐々に取り陀きたす

問題は、テスト間で倚くの関数を共有しおいるため、これらの関数をasync awaitに移行するず、それらを䜿甚し、async awaitに移行されおいないすべおのテストが䞭断されるこずですヒントA LOT。 たた、同じ関数の2぀のバヌゞョンを保持するず、それらが分岐するリスクがありたす。
したがっお、async / awaitに移行する前に、䞭間ステップずしおチェヌンを玄束するようにすべおを移行するか、テストコヌドベヌスをトランスパむルするようにbabelを蚭定したすhttps://stackoverflow.com/questions/のようなものを䜿甚。 28708975 / transpile-async-await-proposal-with-babel-js、async / awaitを蚘述しお、制埡フロヌの有無にかかわらず実行できるものにトランスパむルするこずができたす。
これが以前に行われたこずがあるかどうか誰かが知っおいたすか
いずれにせよ、Readmeで倧芏暡なコヌドベヌスの移行パスを指定するこずをお勧めしたす...

理にかなっおいたす、実際私たちは最近それに぀いお考えおいたす。
倧芏暡なコヌドベヌスをasync / awaitに移行した瀟内チヌムず話をしたした。
圌らは、䞀般的なナヌティリティをpromise chainに倉曎した堎合、埮劙なバグず競合状態が発生するこずを発芋し、すでにそれをあきらめたした。
圌らはいく぀かの䞀般的なナヌティリティをコピヌし、それらをasync / awaitに倉換したした。 それが最善の解決策かどうかはわかりたせんが、あなたが蚀ったように、それはいく぀かの発散リスクを持っおいたす
たた、移行ツヌルを簡単に䜜成できるように取り組んでいたすが、ツヌルは倖郚では機胜しない可胜性がありたす。

ずにかく、私たちは最近移行蚈画に取り組んでおり、近い将来どこかに移行のアドバむスを䞎える必芁がありたす。

お返事ありがずうございたす、それが問題であるこずを知っおおくのは良いこずです
調べられおいる
どのように特定の問題を䜜成するのは良い考えだず思いたす
倧芏暡なコヌドベヌスを移行しお、䜜業䞭のコヌドベヌスが衚瀺されるようにしたす。

Le 16janv。 2018 1958、「qiyi」 [email protected]écrit 

理にかなっおいたす、実際私たちは最近それに぀いお考えおいたす。
倧芏暡なコヌドベヌスをに移行した瀟内チヌムず話をしたした
async / await。
圌らは、もし圌らがそうすれば、それが埮劙なバグず競合状態をもたらすこずを発芋したした
チェヌンを玄束するために䞀般的なナヌティリティを倉曎したした、そしお圌らはすでにそれをするこずをあきらめたした。
圌らはいく぀かの䞀般的なナヌティリティをコピヌし、それらをasync / awaitに倉換したした。 私
それが最善の解決策であるかどうかはわかりたせんが、あなたが蚀ったように、それは
いく぀かの発散リスクがある
たた、簡単にするための移行ツヌルの䜜成にも取り組んでいたすが、
ツヌルはおそらく倖郚では機胜したせん。

ずにかく、私たちは最近移行蚈画に取り組んでいたす、そしおいく぀かを䞎える必芁がありたす
近い将来どこかに移行のアドバむス。

—
あなたがコメントしたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/angular/protractor/issues/4307#issuecomment-358068096 、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/AHHOgiLEdFS-xZVcOKmO1EB-CID53cryks5tLPFagaJpZM4NtM1n
。

こんにちは、みんな 回避策はありたすか

protractor - 5.2.2
nodejs - 9.3
protractor --elementExplorer
(node:72438) [DEP0022] DeprecationWarning: os.tmpDir() is deprecated. Use os.tmpdir() instead.
[19:15:43] I/local - Starting selenium standalone server...
[19:15:44] I/local - Selenium standalone server started at http://172.29.148.101:58279/wd/hub
[19:15:45] I/protractor -
[19:15:45] I/protractor - ------- Element Explorer -------
[19:15:45] I/protractor - Starting WebDriver debugger in a child process. Element Explorer is still beta, please report issues at github.com/angular/protractor
[19:15:45] I/protractor -
[19:15:45] I/protractor - Type <tab> to see a list of locator strategies.
[19:15:45] I/protractor - Use the `list` helper function to find elements by strategy:
[19:15:45] I/protractor -   e.g., list(by.binding('')) gets all bindings.
[19:15:45] I/protractor -
module.js:557
    throw err;
    ^

Error: Cannot find module '_debugger'
    at Function.Module._resolveFilename (module.js:555:15)
    at Function.Module._load (module.js:482:25)
    at Module.require (module.js:604:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/usr/local/lib/node_modules/protractor/built/debugger/debuggerCommons.js:1:82)
    at Module._compile (module.js:660:30)
    at Object.Module._extensions..js (module.js:671:10)
    at Module.load (module.js:573:32)
    at tryModuleLoad (module.js:513:12)
    at Function.Module._load (module.js:505:3)
[19:15:45] I/local - Shutting down selenium standalone server.
MB-219751:~ olekh$ 

Error: Cannot find module '_debugger' 、OSXも䜓隓しおいたす。

この号はほが1幎前から発行されおいたす。 ただ進歩はありたせんか

@ajklotzただノヌド7でのみ機胜するこずを確認できたす。芁玠゚クスプロヌラヌを䜿甚するために、 nvmを䜿甚しおノヌドのバヌゞョンを切り替えおいたす。 それは苊痛ですが、うたくいきたす

@ajklotz @monkpit @mraibleノヌド8以降で実行できる堎合は、次のこずを詊しおみるこずをお勧めしたす。

  1. このビデオ「分床噚新しい垌望」 https://youtu.be/6aPfHrSl0Qk?t=1051をご芧ください。具䜓的には、17 31頃からです。
  2. ノヌド8以降の䜿甚に切り替えたす
  3. ES2017 async / awaitキヌワヌドを䜿甚するようにテストを倉換したす https 
  4. SELENIUM_PROMISE_MANAGER: false,をprotractor.conf.jsに远加したす
  5. 新しいdebugger関数を䜿甚し、chrome inspectorを䜿甚しおデバッグしたす https 

私は自分の分床噚テストでこれを行い、それが機胜するこずを確認したした。

@ajklotz @monkpit @mraibleこれは、分床噚テストをasync / awaitを䜿甚するように倉換した䟋です https 

Promiseを返すものはすべお、次のようにその前にawaitを貌り付けたす。

  • .click()
  • .browser.wait()
  • .browser.get()
  • .getText()

関数にawait呌び出しがある堎合、関数のシグネチャの前にasyncが必芁です。

asyncお関数を呌び出す堎合は、 awaitにする必芁がありたす。

しばらく時間がかかりたすが、䞀床実行するず機胜したす。

@rodrigc私のテスト゚リアはすでにasync / awaitを䜿甚しおいたすが、この問題のポむントは、コマンドラむンから、ノヌド7を䜿甚しない限りprotractor --elementExplorerが機胜しないこずです。

FWIW、 async/awaitような蚀語機胜はずにかく無関係なはずです。 おそらく、䞀時的な修正ずしおのスワップは理にかなっおいたすが、分床噚はそのスタむルぞの䟝存を意味したせん。

@monkpitはい、あなたは絶察に正しいです。 問題の根本的な原因は、次の行にありたす https  _debuggerモゞュヌルがむンポヌトされたす。 node8では䜿甚できたせん。 したがっお、 elementExplorerを含め、 debuggerCommons.jsを䜿甚するものはすべおnode8では機胜したせん。

したがっお、node8以降を䜿甚しお分床噚でデバッグする堎合は、 async/awaitを䜿甚しお、 https  。 debug.md

叀いデバッグ機胜は機胜したせん。

修正されないか問題ありたせん。回避策を䜿甚できたす、ノヌド8以降を䜿甚するように曎新されたすこれも問題ありたせん。 しかし、私は䜕らかの圢で公匏の回答を芋たいず思っおいたす。

@monkpit

答えは@qiyiggのこのコメントにあるず思いたす。

分床噚デバッガヌ/゚クスプロヌラヌの堎合、ノヌド8ではサポヌトしないこずにしたした...

@qiyiggず話したずきに聞いた

今のずころ、この問題を解決したす。 それはただ議論の䜙地がありたす。

@qiyigg chrome inspectorずnode8で新しいdebuggerを䜿い始めたしたが、うたく機胜したす。

分床噚チヌムは、 debuggerCommon.jsを非掚奚ずしお䜿甚する叀いデバッグコヌドのドキュメントのマヌク付けを開始できたすか @monkpitに同意したす。コヌドがnode8で機胜しない堎合、状況が少し混乱したすが、非掚奚ずしおマヌクされおいたせん。 最終的に、この叀いデバッグコヌドは、node8で修正されない堎合は、削陀する必芁がありたす。

デバッグドキュメントを芋るず、デバッガヌがノヌド8で機胜しないこずはすでに説明したした。
https://github.com/angular/protractor/blob/master/docs/debugging.md#enabled -control-flow
「泚分床噚デバッガヌず芁玠゚クスプロヌラヌはNode.js8以降では䜿甚できたせん」

芚えおおくべきこずの1぀は、すべおの人がNode 8+を䜿甚しおいるわけではなく、デバッガヌが非掚奚であるずは蚀えず、すべおの人にasync / awaitの䜿甚を匷制するこずはできたせんただし、Google内で䜿甚したす。

どうやら、Node8 +ずasync / awaitに移行するこずには倚くの利点があり、最終的にはそれに移行する必芁がありたすが、既存のコヌドの倚くを倉曎する必芁があるため、簡単な䜜業ではありたせん。 私たちはグヌグル内でこれに取り組んでおり、移行移行ツヌルでさえに぀いおより倚くの経隓を蓄積しようず努めおおり、それが最終的にグヌグル倖のナヌザヌにも圹立぀こずを願っおいたす。

私たちが今できるこずは、この゚ラヌをより明確にするこずだず思いたす。たずえば、䟋倖をスロヌしたす。「゚ラヌモゞュヌル '_debugger'が芋぀かりたせん」の代わりに芁玠゚クスプロヌラヌ/デバッガヌがノヌド8以降でサポヌトされおいたせん。PRは非垞に高くなりたす。歓迎したした。

@qiyiggその譊告を倪字ですべお倧文字にするこずをお勧めしたす。 蚀葉が倚いので、そのペヌゞを芋぀けるのは少し難しいです。

intellijを䜿甚しおテストを実行できるため、新しいデバッガヌに本圓に満足しおいたす。 これは芁玠゚クスプロヌラヌ私はむしろ奜きでしたよりもはるかに優れおいたすが、IDEを䜿甚しおテストをデバッグするこずは倧きな勝利です。

@qiyigg私は倧芏暡なプロダクションピンタヌを補造しおいる䌚瀟で働いおいたす。 すべおのUIをAngularを䜿甚するように倉曎したため䞇歳、UI E2Eテストに分床噚を䜿甚するこずにしたしたこれも䞇歳です。 これらのE2Eテストずは別に、実際に実行されおいるシステムで機胜する実際の゚ンドツヌ゚ンドのテストもありたす。 そのテストシステムのすべおのテストケヌスは、Microsft TFSテストフレヌムワヌクで指定されおおり、DSLを䜿甚しおそれらを蚘述したす。 このDSLは、むンタラクティブに開始された分床噚぀たり、芁玠゚クスプロヌラヌを介しおUI甚に䜜成したペヌゞオブゞェクトを読み蟌み、それらのメ゜ッドを呌び出しおテストを実行したす。

これたでのずころ、これらのテストは䜕千もあり、実際には「ナヌザヌずしお」実行されたす。 この䌚話から私が理解しおいるのは、芁玠゚クスプロヌラヌが新しいノヌドずずもにドロップされるこずですそしお、Angularをアップグレヌドするには新しいノヌドが必須です。 これは、突然、テストベヌス党䜓が機胜しなくなるこずも意味したす。

async / waitで倉曎を取埗し、それをサポヌトするためにペヌゞオブゞェクトを明らかに曞き盎したすが、分床噚コマンドをリモヌトで挿入する実際の代替手段はありたせんよね 私は垞に「デバッガヌ」のみを呌び出す「テスト」に合栌する必芁があり、次にchromeず盎接通信しおペヌゞオブゞェクトのコマンドを呌び出し、次の「デバッガヌ」呌び出しを実行する必芁がありたす。 whileルヌプで。

これらのようなシナリオはサポヌトされおいたせんでしたか 圌らはそうではありたせんか たたは、䜕かが足りないだけですか...私にずっお、テスト/コヌドのデバッグ゚ラヌは、リモヌトでテストコマンドを指瀺するこずずはたったく異なりたす。 埌者は、芁玠゚クスプロヌラヌが容易にするために䜿甚されるものです:)

少なくずも私の珟圚の解決策を共有するために、私はこのテストを䜜成したした。これは、分床噚で実行する唯䞀のシステムテストですCompletableFutureは明らかにヘルパヌクラスです。

jasmine.DEFAULT_TIMEOUT_INTERVAL = 3600000; // arbitrary large timeout
(global as any).systemTestsDone = new CompletablePromise<void>();

describe('TestHelper', () => {
  it('should provide a way to interactively run tests', async () => {
    await (global as any).systemTestsDone;
  });
});
node --inspect .\node_modules\protractor\bin\protractor .\systemTests\protractor.conf.js

このテストは、テスト仕様ずペヌゞオブゞェクト間のブリッゞずしお機胜するCWSクラむアントに接続しおいる間も実行を続けたす。 次に、このブリッゞはブラりザにペヌゞオブゞェクトをロヌドするように指瀺し、テストの実行を開始したす。

もちろん、ブラりザに送信する最埌のコマンドは

global.systemTestsDone.complete()

テストが正垞に完了するようにしたす。 これは本圓にひどいこずではないず思いたす。唯䞀の奇劙なこずは、むンタラクティブモヌドに入るにはテストを悪甚しなければならないずいうこずです。 より倚くの人がこのような機胜を欠いおいる堎合は、分床噚に再床含めるこずをお勧めしたす。 devtoolsプロトコル党䜓を意味するのではなく、たずえば、Chromeたたはビゞュアルスタゞオコヌドのコン゜ヌルを「芁玠゚クスプロヌラヌ」ずしお䜿甚しおいる間、分床噚を実行したたたにするオプションを意味したす。

@vikermanを远加したす。これは、分床噚のものを匕き継ぎたす。

@vikerman䞊蚘のコメントから機胜リク゚ストを行う必芁がありたすか

芁するに、分床噚に入れたいのは --elementExplorerは最近のnode.jsバヌゞョンでは機胜しなくなったため、分床噚を起動し、スペックファむルを無芖し、手動のメ゜ッド呌び出したで実行し続けるモヌドです。  protractor.exit()ようなもの。 node --inspectを䜿甚しおこのモヌドで分床噚を起動し、いく぀かのペヌゞオブゞェクトをロヌドし、倖郚テストランナヌをデバッガプロトコルに接続しお、むンタラクティブにテストを実行できたす。

誰かがこれを修正すれば、これは本圓に良いでしょう。 私は珟圚、回避策ずしおnvmを䜿甚しおいたす。
nvmを䜿甚しおノヌド7.10.1をむンストヌルし、そこからelementExplorerを起動したす。
少し䞍完党な回避策ですが、今のずころは機胜したす

これを機胜させるためにノヌドv6にダりングレヌドしたしたが、ノヌド6がAngular 6以降でサポヌトされおいないため、Angular6アプリを実行できたせん。 Angularはノヌド> = 8.9.0をタヌゲットにしおいるようです。

2぀のバヌゞョンのノヌドを実行する必芁なしに分床噚REPLを取埗するために埓うこずができる良い回避策はありたすか

コン゜ヌルでも同じ゚ラヌが発生したす。 私はここに䞎えられたこれらの指瀺に埓っおいたす
https://github.com/angular/protractor/blob/master/docs/debugging.md#enabled -control-flow

しかし、それでも同じ゚ラヌが発生しおいたす👎

では、これでbrowser.pause/ browser.debuggerは終わりですか 制埡フロヌから離れおノヌドデバッガヌを䜿甚する必芁があるようです。
https://github.com/angular/protractor/blob/master/docs/debugging.md

NVMを䜿甚しおノヌドバヌゞョン7.10.1に切り替えるず、browser.pauseの問題が修正されたした。

async / awaitが前進であり、ブレヌクポむントを䜿甚しおテストをデバッグするためにWebstormを䜿甚するこずは完党にシヌムレスであるこずを理解しおいたすが、elementExplorerがないこずは、 elementorパッケヌゞでの拡匵された䜿甚法であり、パヌツをむンタラクティブにテストするための楜しい方法でした。テスト党䜓を最初から実行する代わりに、オムニボックス内のオンザフラむでコヌドを実行したす。
nodejs 8以降の特定のデバッグプロセスでは、むンスペクタヌがブレヌクポむントで䞀時停止しおいる間、コン゜ヌルからのコマンドはpromiseを解決したせん。これは盎感に反したすが、これはすべお、曞き蟌みに費やされる時間がわずかに増加するこずを意味したす。デバッグテスト、および広く䜿甚されおいる機胜の喪倱このスレッドでの応答の数による。
分床噚の叀いelementExplorer機胜の代わりになる予定はありたすか

@ woppa684提案は私にずっおうたく機胜しおいたす。 @ woppa684に感謝したす。 repl-awaitがあるノヌド10+に移動したしたコン゜ヌルで埅぀こずができたす

参照甚にすべおの蚭定ファむルを远加したした。うたくいけば、誰かに圹立ちたす。

特別なむンタラクティブデバッグ仕様-interactive.e2e.ts

import { LoginPage } from './src/pages/login.po';
import { AppPage } from './src/pages/app.po';
import { SwitchProfileSideSheet } from './src/side-sheets/switch-profile-side-sheet.po';
import { sel } from '../src/testing/get-component';

const login = new LoginPage();
const app = new AppPage();
const switchProfileSideSheet = new SwitchProfileSideSheet();

// add my own page objects to the global object so I can use them interactively.
global['sel'] = sel;
global['po'] = {
  login,
  app,
  switchProfileSideSheet,
};

(global as any).systemTestsDone = new Promise(function(_resolve, _reject) {
  global['finishInteractiveDebug'] = _resolve;
});

describe('TestHelper', () => {
  it('should provide a way to interactively run tests', async () => {
    await (global as any).systemTestsDone;
  });
});

package.json

    "e2e-interactive": "node --experimental-repl-await --inspect-brk ./node_modules/.bin/protractor ./e2e/protractor.interactive.conf",

protractor.interactive.conf.js

// Protractor configuration file, see link for more information
// https://github.com/angular/protractor/blob/master/lib/config.ts

// standard protractor config
const baseConfig = require('./protractor.conf');
const configCopy = Object.assign({}, baseConfig.config);

const oneDayInMilliSeconds = 1000 * 60 * 60 * 24;
// set timeout to a huge number
// so it's not an issue when we pause in the debugger
configCopy.allScriptsTimeout = oneDayInMilliSeconds;
configCopy.jasmineNodeOpts.defaultTimeoutInterval = oneDayInMilliSeconds;
// just load our interactive specs
configCopy.specs = ['./interactive.e2e.ts'];

console.log('interactive config', configCopy);
exports.config = configCopy;

私が䜿甚しおbrowser.sleep(100000)の代わりにbrowser.pause()

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡