私はconsole.logsの束を使用してこれを理解しようとしてきましたが、これらの読み込み時間が長い理由をまだ理解できません。Zombie.js pressButton長いコールバック遅延
私は自分のMochaユニットテストファイルのbeforeEach
に以下のコードを書いています。そして、最終的にはダッシュボードページを表示するいくつかのリダイレクトを持つことになります。この場合、ボタンを押すと
browser.fill('email', '[email protected]');
browser.fill('password', 'testtest');
browser.pressButton('Login').then(function() {
console.log("#100 - "+ new Date().getTime());
done();
});
。そのhtmlファイルの一番下に、次のコードがあります。
<script>
$(document).ready(function() {
console.log("#200 - "+ new Date().getTime());
});
</script>
は、だから私は#200
後 マイナス値の後に値を取る場合のテストを実行した後、それは常におよそ5000から6000です。 #200
は、よりも5〜6秒ほど前に常に印刷されるためです。
私は、ページを読み込んだ後、Zombie.jsがそのコールバック関数を呼び出すためにさらに5-6秒かかります。
Zombie.jsには、ページを読み込んだ後に紛失してしまいます。ページの読み込みとそのコールバック関数を呼び出すZombie.jsの間にこの5〜6秒の遅延が発生する原因は他にありますか?
EDIT私は今この同じ問題を抱えていますが、50000msと同じです。そして、それは本当にすべての私のテストですばやくスーパーを追加します。なぜこれが起こっているのかまだ分かりません。
EDIT 2
私は私のテストにbrowser.debug()
を追加した場合、それは非常に最後に次のように出力します。それはまた、他の多くのものを印刷しますが、それはかなり早く全体的に起こります。私は次のことが問題だと思う。それがなぜそれをやっているのか、それをどう修正するのかは分かりません。
zombie Fired setInterval every 5000ms +11ms
zombie Fired setInterval every 5000ms +5s
zombie Fired setInterval every 5000ms +5s
zombie Fired setInterval every 5000ms +5s
zombie Fired setInterval every 5000ms +5s
zombie Fired setInterval every 5000ms +5s
zombie Fired setInterval every 5000ms +5s
zombie Fired setInterval every 5000ms +5s
zombie Fired setInterval every 5000ms +5s
zombie Fired setInterval every 5000ms +5s
zombie Fired setInterval every 5000ms +5s
zombie Fired setInterval every 5000ms
のすべてを引き起こしていると私はそれはそれは55000ms +を服用しないようにする方法を修正しますか?
EDIT 3
Iはまた、ユニットテストの開始時に次のコードを追加しました。
browser.addListener("setInterval",function (a,b) {
console.log("a: "+a);
console.log("b: "+b);
});
各zombie Fired setInterval every 5000ms +5s
を印刷した後、そのリスナーのために次のものも印刷されます。
a: function(){var b,c,d;if(b=window.location.href,b!==h){try{d=JSON.stringify({action:"ping",sid:a.utils.getSessionID(),muid:a.utils.getMerchantID(),referrer:h,url:b,title:document.title}),e.contentWindow.postMessage(d,"*")}catch(f){c=f}return h=b}}
b: 5000
a
とb
は、これら11 zombie Fired setInterval every 5000ms
の各々の後に同じです。それは11回の間にまったく変わらない。
私は関数が多少助けてくれると思っていましたが、なぜこれが起こっているのか、それをどう修正するのかはまだ分かりません。
遅れて返信して申し訳ありません。これまで見ていなかった。各イベントの後にどのくらい正確に変更を検出しますか?私は 'console.log(browser.html());'を実行しました。各イベントのMSの違いが一定量を超えているとします。しかし、私はそれらの間で変更を見つけることはできません。だから、イベントの間に何がそんなに長くかかるのか、どうすればわかるだろうか?私は現在、この単体テストを持っています。これは1分以上かけて行われます。理由を理解できません。過去には約7秒かかった。今それは8倍以上を占めています。そして私はそれを引き起こす私のコードの変更を見つけることができません。 –