告诉我们您的环境:
哪些步骤将重现该问题?
重现问题的代码是:
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();
预期的结果是什么?
该 puppeteer 尊重page.type
方法中传递的delay
选项。
会发生什么?
delay
选项传入page.type
方法得到由覆盖slowMo
传递给选项puppeteer.launch
方法。
@octasimo ,感谢您提交此文件。
slowMo
选项也不例外:它会减慢 pptr 和浏览器之间的所有交互。 我们希望以这种方式保持可预测性并保持代码库简单。
暂时关闭这个; 如果有更多需求,我们可以稍后重新考虑。
@aslushnikov
我认为我们应该允许个别延迟。 浏览器在不同的 CPU 上以不同的方式运行,并且能够减慢某些浏览器操作以确保它们产生相同的结果是很好的。
我认为我们应该允许个别延迟。 浏览器在不同的 CPU 上以不同的方式运行,并且能够减慢某些浏览器操作以确保它们产生相同的结果是很好的。
@sojungko这是 Puppeteer API 之上的ES6 Proxy
来包装 Puppeteer 的对象,以便在方法调用之前或之后插入超时。
最有用的评论
@aslushnikov
我认为我们应该允许个别延迟。 浏览器在不同的 CPU 上以不同的方式运行,并且能够减慢某些浏览器操作以确保它们产生相同的结果是很好的。