Puppeteer: page.type ๋ฉ”์†Œ๋“œ์— ์ „๋‹ฌ๋œ ์ง€์—ฐ ์˜ต์…˜์ด puppeteer.launch ๋ฉ”์†Œ๋“œ์— ์ „๋‹ฌ๋œ slowMo ์˜ต์…˜์œผ๋กœ ๋ฎ์–ด์“ฐ์—ฌ์ง

์— ๋งŒ๋“  2017๋…„ 11์›” 14์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: puppeteer/puppeteer

์žฌํ˜„ ๋‹จ๊ณ„

๊ท€ํ•˜์˜ ํ™˜๊ฒฝ์— ๋Œ€ํ•ด ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

  • ์ธํ˜•๊ทน ๋ฒ„์ „: 0.13.0
  • ํ”Œ๋žซํผ / OS ๋ฒ„์ „: macOS Sierra v10.12.6

์–ด๋–ค ๋‹จ๊ณ„์—์„œ ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•ฉ๋‹ˆ๊นŒ?

๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•˜๋Š” ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

const puppeteer = require('puppeteer');

async function run() {
  const browser = await puppeteer.launch({
    headless: false,
    slowMo: 250
  });
  const page = await browser.newPage();
  page.setViewport({ width: 1280, height: 700 });
  await page.goto('https://www.labs.octasimo.com/puppeteer/test-page-type-delay.html', {
    waitUntil: 'networkidle0'
  });
  await page.type('.firstname', 'Mickey', {delay: 10});
  await page.type('.lastname', 'Mouse', {delay: 10});
  await page.waitFor(5000);
  await browser.close();
}

run();

์˜ˆ์ƒ๋˜๋Š” ๊ฒฐ๊ณผ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๊ทธ ์ธํ˜•๊ทน์€ page.type ๋ฉ”์†Œ๋“œ์— ์ „๋‹ฌ๋œ delay ์˜ต์…˜์„ ์กด์ค‘ํ•ฉ๋‹ˆ๋‹ค.

๋Œ€์‹  ์–ด๋–ป๊ฒŒ๋ฉ๋‹ˆ๊นŒ?

delay page.type ๋ฉ”์†Œ๋“œ์— ์ „๋‹ฌ๋œ slowMo ์˜ต์…˜์€ puppeteer.launch ๋ฉ”์†Œ๋“œ์— ์ „๋‹ฌ๋œ slowMo ์˜ต์…˜์œผ๋กœ ๋ฎ์–ด์”๋‹ˆ๋‹ค.

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

@aslushnikov
๊ฐœ๋ณ„ ์ง€์—ฐ์„ ํ—ˆ์šฉํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” ๋‹ค๋ฅธ CPU์—์„œ ๋‹ค๋ฅด๊ฒŒ ์‹คํ–‰๋˜๋ฉฐ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ํŠน์ • ๋ธŒ๋ผ์šฐ์ € ์ž‘์—…์˜ ์†๋„๋ฅผ ๋Šฆ์ถœ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์žˆ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

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

@octasimo ,

slowMo ์˜ต์…˜์—๋Š” ์˜ˆ์™ธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. pptr๊ณผ ๋ธŒ๋ผ์šฐ์ € ๊ฐ„์˜ ๋ชจ๋“  ์ƒํ˜ธ ์ž‘์šฉ ์†๋„๊ฐ€ ๋Š๋ ค์ง‘๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๊ณ  ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ๋‹จ์ˆœํ•˜๊ฒŒ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ด ๋ฐฉ์‹์„ ์œ ์ง€ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์ง€๊ธˆ์€ ๋‹ซ์Šต๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ์ˆ˜์š”๊ฐ€ ์žˆ์œผ๋ฉด ๋‚˜์ค‘์— ๋‹ค์‹œ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@aslushnikov
๊ฐœ๋ณ„ ์ง€์—ฐ์„ ํ—ˆ์šฉํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” ๋‹ค๋ฅธ CPU์—์„œ ๋‹ค๋ฅด๊ฒŒ ์‹คํ–‰๋˜๋ฉฐ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ํŠน์ • ๋ธŒ๋ผ์šฐ์ € ์ž‘์—…์˜ ์†๋„๋ฅผ ๋Šฆ์ถœ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์žˆ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๊ฐœ๋ณ„ ์ง€์—ฐ์„ ํ—ˆ์šฉํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” ๋‹ค๋ฅธ CPU์—์„œ ๋‹ค๋ฅด๊ฒŒ ์‹คํ–‰๋˜๋ฉฐ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ํŠน์ • ๋ธŒ๋ผ์šฐ์ € ์ž‘์—…์˜ ์†๋„๋ฅผ ๋Šฆ์ถœ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์žˆ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

@sojungko ์ด๊ฒƒ์€ Puppeteer API ์ƒ๋‹จ์—์„œ ํด๋ฆฌํ•„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ES6 Proxy ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Puppeteer์˜ ๊ฐ์ฒด๋ฅผ ๋ž˜ํ•‘ํ•˜์—ฌ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ์ „ํ›„์— ์‹œ๊ฐ„ ์ดˆ๊ณผ๋ฅผ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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