programing

browser.pause()와 browser.enterRepl()의 차이점은 무엇입니까?

codeshow 2023. 10. 29. 20:04
반응형

browser.pause()와 browser.enterRepl()의 차이점은 무엇입니까?

트랙터에는 다음과 같은 기능이 있습니다.

베타(불안정)pause웹 드라이버 테스트를 디버깅하기 위한 함수입니다.테스트에서 browser.pause()를 사용하여 제어 흐름의 해당 지점에서 트랙터 디버거를 입력합니다.

element(by.id('foo')).click();
browser.pause();
// Execution will stop before the next click action.
element(by.id('bar')).click();

그리고, 덜 알려진 것도 있습니다 -:

베타(불안정)enterRepl제어 흐름의 임의의 지점에서 반복 루프를 입력하기 위한 함수입니다.browser.Repl()을 테스트에 입력합니다.명령줄을 변경할 필요가 없습니다('디버그'를 추가할 필요가 없음).

element(by.id('foo')).click();
browser.enterRepl();
// Execution will stop before the next click action.
element(by.id('bar')).click();

제공된 문서 및 예제를 통해 테스트 디버깅에 사용되는 것이 분명합니다.그러나 그 둘의 차이점이 무엇인지는 분명하지 않습니다.

언제 사용할까요?pause()그리고 언제enterRepl()?

일반적으로 문서에 설명되어 있지만, 조금 더 깊이 들어가도록 하겠습니다.

Protractor에는 디버깅을 위한 두 가지 모드, 즉 DebuggerReplCommandRepl이 있습니다.

ReplhereRead-eval-print-loop의 약자로, 일반적으로 입력하는 명령어가 무엇이든 현재 컨텍스트에서 즉시 평가되고 결과가 즉시 제공됩니다.예를 들어, Chrome Developer Tools의 콘솔은 Chrome의 JavaScript/DOM 구현을 위한 일종의 REPL이거나 실행할 때입니다.node터미널에서 Node.js의 자바스크립트 컨텍스트에 대한 REPL을 얻을 수 있습니다. 명령을 입력하고 결과를 얻을 수 있습니다.


사용할때browser.pause()DebuggerRepl을 활성화하고 있습니다.이 모드의 명령을 실행할 수 있는 Repl을 제공합니다.단말기에는 보통 다음과 같은 명령 목록이 나타납니다.

press c to continue to the next webdriver command
press d to continue to the next debugger statement
type "repl" to enter interactive mode
type "exit" to break out of interactive mode
press ^C to exit

그래서 다음 웹드라이버 명령으로 이동할 수 있습니다.c명령 또는 다음으로 점프browser.pause()다음을 사용하여 테스트에 명시합니다.d지휘.사용하는 대로 바로 실행됩니다.따라서 이 모드를 사용하면 기본적으로 페이지 상태를 건너뛰고 결과를 탐색할 수 있습니다. (참고: 이 모드는 더 많은 명령을 제공하며 명령은 작동하지만 출력의 의미가 무엇인지, 그리고 Tractor 사용자에게 유용한지는 잘 모르겠습니다.)


사용할때browser.enterRepl()CommandRepl 모드를 활성화 중입니다.이 기능을 사용하면 테스트에서 사용하는 Tractor 메서드를 대화형 모드에서 사용할 수 있습니다.액세스 권한을 얻을 수 있습니다.element,browser그리고.protractor예를 들어 다음과 같이 실행할 수 있습니다.

> $('.hello').getText();
> 'World'

결과를 즉시 다시 출력하기 때문에 현재 페이지 상태의 DOM을 조회하고 결과를 볼 수 있는 일종의 샌드박스입니다.

눈치채셨겠지만,browser.pause()명령 목록에는 다음과 같은 행이 있습니다.

type "repl" to enter interactive mode

이것은 DebuggerReppl 모드에 있을 때 실행할 수 있다는 것을 의미합니다.repl명령어를 사용하여 방금 실행한 현재 페이지 상태에 대해 CommandReppl 모드를 활성화합니다.browser.pause(), DOM으로 방금 사용한 것처럼 플레이할 수 있습니다.browser.enterRepl(). 를 사용하여 DebuggerReppl 모드로 돌아갈 수 있습니다.exit지휘.하지만 명령어 재생 모드로 진입한 경우에는browser.enterRepl(), DebuggerRepl 모드로 전환할 수 없습니다.

또한 commandRepl 모드elementExplorer라는 기능으로 활성화할 수 있습니다.필기 테스트 없이 사용할 수 있으며 CommandRepl 모드에서 URL만 엽니다.


tl;dr

요약하자면, 저는 그것들이 어떻게 불리는지에 따라 사용되어야 한다고 생각합니다.

browser.pause()- 페이지에서 무슨 일이 일어나고 있는지 확인할 수 있도록 브라우저를 그 자리에서 정확히 일시 중지했으면 합니다.그럼, 제 명령에 따라, 여기서 무슨 일이 일어나고 있는지 알 수 있도록 다음 상태로 점프해 주세요.현재 상태에 대한 더 많은 정보가 필요하면 실행할 수 있습니다.replTractor API를 사용합니다(browser,element,protractor조사할 것입니다.그럼 가능합니다.exit이 모드와 상태를 계속 점프합니다.

browser.enterRepl()- 브라우저를 해당 위치에서 정확히 일시 중지하고 Protractor API를 사용하여 페이지를 조사할 수 있도록 합니다.browser,element,protractor가 없습니다 즉시 페이지의 상태 사이를 이동할 필요가 없습니다.

노드 버전 8.10이 포함된 Protractor 버전 5.3은 지원되지 않습니다. browser.pause()더이상.자세한 내용은 이쪽.

필요한 작업을 트랙터 비동기식 대기로 수행할 수 있는 가능성이 있습니다.

언급URL : https://stackoverflow.com/questions/31413300/what-is-the-difference-between-browser-pause-and-browser-enterrepl

반응형