Puppeteer: 在 page.type 方法中传递的延迟选项被传递给 puppeteer.launch 方法的 slowMo 选项覆盖

创建于 2017-11-14  ·  3评论  ·  资料来源: puppeteer/puppeteer

重现步骤

告诉我们您的环境:

  • 傀儡师版本:0.13.0
  • 平台/操作系统版本: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();

预期的结果是什么?

该 puppeteer 尊重page.type方法中传递的delay选项。

会发生什么?

delay选项传入page.type方法得到由覆盖slowMo传递给选项puppeteer.launch方法。

最有用的评论

@aslushnikov
我认为我们应该允许个别延迟。 浏览器在不同的 CPU 上以不同的方式运行,并且能够减慢某些浏览器操作以确保它们产生相同的结果是很好的。

所有3条评论

@octasimo ,感谢您提交此文件。

slowMo选项也不例外:它会减慢 pptr 和浏览器之间的所有交互。 我们希望以这种方式保持可预测性并保持代码库简单。

暂时关闭这个; 如果有更多需求,我们可以稍后重新考虑。

@aslushnikov
我认为我们应该允许个别延迟。 浏览器在不同的 CPU 上以不同的方式运行,并且能够减慢某些浏览器操作以确保它们产生相同的结果是很好的。

我认为我们应该允许个别延迟。 浏览器在不同的 CPU 上以不同的方式运行,并且能够减慢某些浏览器操作以确保它们产生相同的结果是很好的。

@sojungko这是 Puppeteer API 之上的ES6 Proxy来包装 Puppeteer 的对象,以便在方法调用之前或之后插入超时。

此页面是否有帮助?
0 / 5 - 0 等级