Puppeteer: page.typeメソッドで渡されたdelayオプションは、puppeteer.launchメソッドに渡されたslowMoオプションによって上書きされます

作成日 2017年11月14日  ·  3コメント  ·  ソース: puppeteer/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();

期待される結果は何ですか?

その人形遣いは、 delay page.typeメソッドで渡されたdelayオプションを尊重します。

代わりに何が起こりますか?

delayオプションが渡されたpage.typeの方法で上書きされますslowMoに渡されるオプションpuppeteer.launch方法。

最も参考になるコメント

@aslushnikov
個別の遅延を許容する必要があると思います。 ブラウザはCPUごとに動作が異なります。特定のブラウザの動作を遅くして、同じ結果が得られるようにする機能があると便利です。

全てのコメント3件

@octasimo 、これを提出してくれてありがとう。

slowMoオプションにも例外はありません。これにより、pptrとブラウザ間のすべてのやり取りが遅くなります。 予測可能であり、コードベースを単純に保つために、この方法を維持したいと思います。

今のところこれを閉じます。 より多くの需要がある場合は、後でこれを再検討できます。

@aslushnikov
個別の遅延を許容する必要があると思います。 ブラウザはCPUごとに動作が異なります。特定のブラウザの動作を遅くして、同じ結果が得られるようにする機能があると便利です。

個別の遅延を許容する必要があると思います。 ブラウザはCPUごとに動作が異なります。特定のブラウザの動作を遅くして、同じ結果が得られるようにする機能があると便利です。

@sojungkoこれはPuppeteerAPIの上でポリフィル可能です。 ES6 Proxyを使用してPuppeteerのオブジェクトをラップし、メソッド呼び出しの前後にタイムアウトを挿入できます。

このページは役に立ちましたか?
0 / 5 - 0 評価