1
私はcucumber jsを使用していくつかのテストを自動化しようとしており、1つはnew Date()を呼び出す関数に依存しています。オーバーライドスクリプトを実行している日付コンストラクタ
私はこのスクリプトを実行し、このような日付を上書きしようとしました。
const driver = (this.driver as ThenableWebDriver);
await driver.get(`http://localhost:5000/`);
await driver.executeScript(`
var d = new Date(2012,0,20);
Date = function(){return d;}
`);
私は
await driver.executeScript(`
alert(new Date()) // returns the date i set
`);
で再びexecuteScript関数を呼び出す場合、新しい日付が正しく返されます。 しかし、私はクリックをシミュレートし、onClickは新しいDate()を実行しますが、ローカルDateを取得し、設定した日付は取得しません。
チップはありますか?事前
で 感謝[EDIT]は、ここでこれを見た:How to override new Date() on Protractor tests
var Date = (function() {
var OldDate = Date;
return function(){
return new OldDate(2012,0,20);
}
}());
しかし、まだ運を。 executeScriptはどこで実行されますか?コンストラクタDate
オーバーライドすること
を私はonclickのコールバックをコード化され、私は、新しいDate()明示的に呼び出します – Franmcod