prosource

견인기를 천천히 작동시킬 수 있습니까?

probook 2023. 4. 3. 21:35
반응형

견인기를 천천히 작동시킬 수 있습니까?

프로텍터를 사용하여 작성된 Angular E2E 테스트를 천천히 실행하여 상황을 볼 수 있는 방법이 있습니까?

그것을 하기 위한 나의 해결책은 다음과 같습니다.그래서 기본적으로 전류 제어 흐름을 위한 데코레이터를 만들었습니다.execute각 큐잉액션 전에 100밀리초의 지연을 큐잉합니다.

테스트를 호출하기 전에 실행해야 합니다(외부).describe블록)

var origFn = browser.driver.controlFlow().execute;

browser.driver.controlFlow().execute = function() {
  var args = arguments;

  // queue 100ms wait
  origFn.call(browser.driver.controlFlow(), function() {
    return protractor.promise.delayed(100);
  });

  return origFn.apply(browser.driver.controlFlow(), args);
};

조지 스토커가 댓글에서 말한 것처럼 왜 이걸 하고 싶어 하는지...시험에서는 원하는 곳이라면 언제든지 잠을 추가할 수 있습니다.

browser.sleep(6000);

이전 답변은 회피책에 가깝습니다.다른 방법은 다음과 같이 Protractor 설정에 param을 추가하는 것입니다.

highlightDelay: 1000

다음으로 변경합니다.

directConnect: false

클릭이나 입력과 같은 프로젝터 동작이 1초간 지연되고 밝은 파란색으로 강조 표시됩니다.

다음 명령을 코드에 입력하여 '디버깅 모드'로 들어갈 수 있습니다.

browser.pause();

디버깅 모드에서는 단말기에 다음 출력이 표시됩니다.

------- WebDriver Debugger -------
ready

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
  • 모든 요소와 상호작용할 수 있는 인터랙티브 모드로 들어갑니다.repl

이를 위한 2가지 방법

1. 첫 번째는 매우 유치한 방법이지만, 저는 여기에 두겠습니다.

대화하고 있는 요소를 강조 표시할 수 있습니다.

highlightElement: async ($elementObject, time = 1000) => {
        async function setStyle(element, style) {
            const previous = await element.getAttribute('style');
            await element.setAttribute('style', style);
            await setTimeout(() => {
                element.setAttribute('style', previous);
            }, time);
        }
        await browser.sleep(time)
        return await browser.executeScript(await setStyle, $elementObject.getWebElement(), 'color: red; background-color: yellow; z-index: 9999;');
    },

그러면 요소가 잠시 강조 표시됩니다.

그런 다음 이 요소를 사용하여 동작을 정리합니다.

let click = async function ($elem) {
  await highlightElement($elem);
  await $elem.click();
}

let sendKeys = async function ($elem, text) {
  await highlightElement($elem);
  await $elem.sendKeys(text);
}

그런 다음 이를 사용하여 몇 가지 스크립트를 시도합니다.

await sendKeys($login, username);
await sendKeys($password, password);
await click($submit);

이것은 실제 대본에서는 사용할 수 없습니다.사용할 때만 사용할 수 있습니다.

2. 코드 에디터에서 디버깅 구성을 설정합니다.

vs 코드 https://medium.com/ @ganesh sirsi / how-to-protractor-in-visual-fc-code-e945fc971a74의 예이지만 웹스톰에서도 마찬가지입니다.

이를 통해 코드를 한 줄씩 실행하고 실시간으로 변수와 상호 작용할 수 있습니다.절단기를 사용하는 모든 사람이 가지고 있어야 합니다.저는 진심이에요.

언급URL : https://stackoverflow.com/questions/24960290/can-protractor-be-made-to-run-slowly

반응형