try catchブロックに格納する必要のあるコードがあります。try catch catch webdriverのカスタムウェイト
ここはコードです。私は今、それが動作に設定されてきたように、私は
try{
this.driver.manage().timeouts().implicitlyWait(3000, TimeUnit.MILLISECONDS);
this.wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.id("PegaGadget0Ifr")));
} catch(Exception e){
System.out.println(e.toString());
}
について話しているが、フレームが利用できない場合、それはキャッチに進む前に60秒間待機しますすることでトライcatchブロックにカスタムタイムアウトを設定することです。
私はimpliclyWait()がトリックをやっていると思っていました(フレームが利用できない場合は暗黙のうちにDOMオブジェクトを3秒間プールしてからキャッチするように試みます)しかし、時間切れになるまでに60秒待ってから
'Timed out after 60 seconds waiting for frame to be available:'
誰でも私がタイムアウトで待ち時間を変更する方法を教えてもらえますか? try catchブロックでタイムアウトを設定すると、フレームが利用できない場合は1分待たずにスクリプトを続行するだけです。
ありがとうございます。
ページがロードされ、基本的にするとき、それは(別のボタンやフレームである。このボタンのいくつかのオープン「タブ」を持って、時には枠が外れます、リプレイをありがとうjavascriptの負荷のため)私は古い要素の例外を取得するので、ページから。したがって、このコード行ではthis.wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.id( "PegaGadget0Ifr")));いくつかの操作を行う前にフレームが完全にロードされるのを待っています。前に述べたように待機が必要な場合もありますが、ほとんどの場合フレームが分離されていないときではなく、リードを待つ必要はありません。 –
しかし、このtry try catchブロックは、リロードフレームが不要なときに待機します。時間切れになるまでに1分ほどの時間を費やしています。 –
ページに実際にIframe要素が含まれているかどうかを確認するための条件を1つ追加する方法、要素がある場合はそれ以外の場合は待機してくださいtry catch catch(); Assert.assertTrue(driver.getPageSource()。contains(textOnThePage)); これは、ページソースにIframeがあるかどうかをチェックし、それに基づいて待機するか待機しないかをチェックします。 –