したがって、backstop.jsは、基盤となるエンジンに対してカスタム スクリプトを実行する機能を提供します。私は操り人形師をエンジンとして使用しているのでDate.now
、「onReadyScript」でモックしようとしています:
page.evaluate('window.Date.now = () => 0; Date.now = () => 0;');
...
page.addScriptTag({
// btw `console.log` here is not executed, do I use it in wrong way?
content: 'Date.now = () => 0;'
});
...
page.evaluate(() => {
window.Date.now = () => 0;
Date.now = () => 0;
});
最後の1つは、操り人形師の内部ではなく、ノードのコンテキストでDateを変更していると思いますが、とにかくそれも試しました。
何も機能しませんでした。テスト中のスクリプトは引き続き real を出力しますDate.now
。また、puppeteer でブラウザーの日付をオーバーライドすることも確認しましたが、役に立ちませんでした。
はい、特定のセレクターをスキップできることはわかっていますが、常に意味があるとは限りません (矢印のある時計について考えてみてください)。