1

一連の setTimeout コードを含むいくつかのページに対してテストを実行したいと考えています。1 つのオプションは、このコードが実行されるまで待つことですが、理想的には、ページが読み込まれたらすぐにコードを強制的に実行したいと考えています。

私が考えた 1 つのアプローチは、ページが評価される前に、次のような JavaScript をページに挿入することです。

var originalSetTimeout = window.setTimeout;
window.setTimeout = function(a, t) {
    originalSetTimeout(a, 0);
}

ただし、それを行う方法がわかりません。または、見落としているより良いアプローチがあるかどうかもわかりません。

テスト中のページで setTimeout コードを削除することは、ここではオプションではないことに注意してください。

4

1 に答える 1

0

あなたがするとき

driver.get('http://mypage.com')

WebDriver は、ページが読み込まれるまで待機します。それが完了したら、次のことができます

driver.execute_script('var originalSetTimeout = window.setTimeout;
                      window.setTimeout = function(a, t) {
                         originalSetTimeout(a, 0);
                      }')

これはおそらくあなたが望むことを行い、できるだけ早く実行する必要があります。

于 2013-01-23T13:24:06.010 に答える