Protractor: ๊ฐ๋„๊ธฐ browser.sleep()์ด ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2016๋…„ 07์›” 01์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: angular/protractor

์•„๋ž˜์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด ํด๋ผ์ด์–ธํŠธ๊ฐ€ XYZ์ธ ๊ฒฝ์šฐ browser.sleep์ด ์‹คํ–‰๋˜์–ด์•ผ ํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Browser.sleep ๋ฌธ ๋’ค์— console.log๋ฅผ ๋„ฃ์œผ๋ฉด ํ•ด๋‹น ๋ช…๋ น๋ฌธ์ด ์‹คํ–‰๋˜์ง€๋งŒ(๋ช…๋ น๋ฌธ์„ ๋ณผ ์ˆ˜ ์žˆ์Œ) ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ ˆ์ „ ์‹œ๊ฐ„์ด ์–ผ๋งˆ๋‚˜ ์ฆ๊ฐ€ํ•˜๋”๋ผ๋„ ์‹ค์ œ๋กœ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

browser.sleep์ด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ํด๋ผ์ด์–ธํŠธ๊ฐ€ XYZ์ธ ๊ฒฝ์šฐ ์–ด๋–ป๊ฒŒ ๊ธฐ๋‹ค๋ฆฌ๊ฒŒ ํ•ฉ๋‹ˆ๊นŒ?

           if (testproperties.client == 'ABC'){
                browser.ignoreSynchronization = false;
                browser.waitForAngular();
                browser.ignoreSynchronization = true;    
            }
            else if (testproperties.client == 'XYZ'){
                browser.sleep('35000');
            };

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@gamecheck80 ์—์„œ ์ž‘์€ ๋”ฐ์˜ดํ‘œ๋ฅผ ์ œ๊ฑฐํ•˜์‹ญ์‹œ์˜ค.

// use like this
browser.sleep(35000);

๋ชจ๋“  3 ๋Œ“๊ธ€

@gamecheck80 ์—์„œ ์ž‘์€ ๋”ฐ์˜ดํ‘œ๋ฅผ ์ œ๊ฑฐํ•˜์‹ญ์‹œ์˜ค.

// use like this
browser.sleep(35000);

์„ค๋ช…์ด ์ •๋ง ๋น ๋ฆ„: browser.sleep์€ ์•ฝ์†์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์ž์„ธํžˆ ์‚ดํŽด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • browser.sleep์ด webdriver.sleep์„ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.
  • webdriver.sleep์€ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์ œ์–ด ํ๋ฆ„์„ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.
  • timeout์€ ๊ฒฐ๊ตญ setTimeout ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์ง€์—ฐ์„ ํ˜ธ์ถœํ•˜๋ฉฐ ํ•ด๋‹น ๋ฌธ์ž์—ด์ด ์ˆซ์ž์ธ ํ•œ ๋ฌธ์ž์—ด์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

browser.sleep('35000')์€ ํ—ˆ์šฉ๋˜๋Š” ์ž…๋ ฅ์ž…๋‹ˆ๋‹ค.

browser.sleep์€ ์•ฝ์†์„ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•ฝ์†์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

describe('browser', function() {
  it('should sleep', function() {
    browser.get('http://angularjs.org');

    // does not work
    // browser.sleep(10000);
    // console.log('waited 10 seconds?');
    // this does not work and "waited 10 seconds?" appears immediately after navigating

    // after sleeping then print "waited 10 seconds"
    browser.sleep(10000).then(function() {
      console.log('waited 10 seconds');
    });
  });
});

์ด๊ฒƒ์ด ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๋„์›€์ด ๋” ํ•„์š”ํ•˜๋ฉด StackOverflow , Google ๊ทธ๋ฃน ํ† ๋ก  ๋ชฉ๋ก ๋˜๋Š” Gitter ์—์„œ ์ง€์› ์งˆ๋ฌธ์„ ํ•˜์‹ญ์‹œ์˜ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ https://github.com/angular/protractor/blob/master/CONTRIBUTING.md#questions ๋ฅผ ์ฐธ์กฐ

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

browser.sleep(10000).then(ํ•จ์ˆ˜() {
console.log('10์ดˆ ๋Œ€๊ธฐ');
});
Angular 6 ๋ฐ ๊ฐ๋„๊ธฐ ๋ฒ„์ „ 5.4.1์—์„œ ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ ์–ด๋„ ๊ทธ๊ฒƒ์ด ์ œ๊ฐ€ ๋ณด๊ณ  ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰