๊ทํ์ ํ๊ฒฝ์ ๋ํด ์๋ ค์ฃผ์ญ์์ค.
์ด๋ค ๋จ๊ณ์์ ๋ฌธ์ ๋ฅผ ์ฌํํฉ๋๊น?
๋ฌธ์ ๋ฅผ ์ฌํํ๋ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
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
์ต์
์ผ๋ก ๋ฎ์ด์๋๋ค.
@octasimo ,
slowMo
์ต์
์๋ ์์ธ๊ฐ ์์ต๋๋ค. pptr๊ณผ ๋ธ๋ผ์ฐ์ ๊ฐ์ ๋ชจ๋ ์ํธ ์์ฉ ์๋๊ฐ ๋๋ ค์ง๋๋ค. ์ฐ๋ฆฌ๋ ์์ธก ๊ฐ๋ฅํ๊ณ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๋จ์ํ๊ฒ ์ ์งํ๊ธฐ ์ํด ์ด ๋ฐฉ์์ ์ ์งํ๊ณ ์ถ์ต๋๋ค.
์ง๊ธ์ ๋ซ์ต๋๋ค. ๋ ๋ง์ ์์๊ฐ ์์ผ๋ฉด ๋์ค์ ๋ค์ ๊ณ ๋ คํ ์ ์์ต๋๋ค.
@aslushnikov
๊ฐ๋ณ ์ง์ฐ์ ํ์ฉํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ธ๋ผ์ฐ์ ๋ ๋ค๋ฅธ CPU์์ ๋ค๋ฅด๊ฒ ์คํ๋๋ฉฐ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ๋๋ก ํน์ ๋ธ๋ผ์ฐ์ ์์
์ ์๋๋ฅผ ๋ฆ์ถ ์ ์๋ ๊ธฐ๋ฅ์ด ์๋ ๊ฒ์ด ์ข์ต๋๋ค.
๊ฐ๋ณ ์ง์ฐ์ ํ์ฉํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ธ๋ผ์ฐ์ ๋ ๋ค๋ฅธ CPU์์ ๋ค๋ฅด๊ฒ ์คํ๋๋ฉฐ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ๋๋ก ํน์ ๋ธ๋ผ์ฐ์ ์์ ์ ์๋๋ฅผ ๋ฆ์ถ ์ ์๋ ๊ธฐ๋ฅ์ด ์๋ ๊ฒ์ด ์ข์ต๋๋ค.
@sojungko ์ด๊ฒ์ Puppeteer API ์๋จ์์ ํด๋ฆฌํ ๊ฐ๋ฅํฉ๋๋ค. ES6 Proxy
๋ฅผ ์ฌ์ฉํ์ฌ Puppeteer์ ๊ฐ์ฒด๋ฅผ ๋ํํ์ฌ ๋ฉ์๋ ํธ์ถ ์ ํ์ ์๊ฐ ์ด๊ณผ๋ฅผ ์ฝ์
ํ ์ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@aslushnikov
๊ฐ๋ณ ์ง์ฐ์ ํ์ฉํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ธ๋ผ์ฐ์ ๋ ๋ค๋ฅธ CPU์์ ๋ค๋ฅด๊ฒ ์คํ๋๋ฉฐ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ๋๋ก ํน์ ๋ธ๋ผ์ฐ์ ์์ ์ ์๋๋ฅผ ๋ฆ์ถ ์ ์๋ ๊ธฐ๋ฅ์ด ์๋ ๊ฒ์ด ์ข์ต๋๋ค.