2013-01-25 4 views
5

特定のフレームが読み込まれるのを待つために、webdriverでバックアップされたセレンを使用しました。場合によっては、フレームがロードされていないために特定のフレームへの切り替えが失敗するためです。 私が使用するコードは、私がセレン担保webdriverをを排除し、唯一特定のフレームが読み込まれるまでどのように待機しますか?私はセレンのwebdriverを使用しています。2.24

答えて

20

これを実現するには、Webドライバ待ちと期待条件クラスを使用できます。

このコードを試してください。

WebDriverWait wait = new WebDriverWait(driver,10); 
    wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(frameName); 

上記コードはgiven frame up to 10 secondsを待ちます。フレームが利用可能である場合、それは所定のフレームに切り替わる。それ以外の場合は、TimeoutExceptionがスローされます。

制限時間は、アプリケーションとユーザーの希望によって異なります。詳細情報については

http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/support/ui/ExpectedConditions.html#frameToBeAvailableAndSwitchToIt(java.lang.String)

+0

ありがとう@Manigandan、あなたの解決策はうまく動作します –

+0

答えとしてください。 – Manigandan

+0

ありがとう!私のための魅力のように働いた! –

0

私はセレン2を使用するように切り替えるだろうwebdriverをAPIを使用することを計画していた方法がありますなら、私に知らせて、としてください

selenium.waitForFrameToLoad(frameJCLeft, strTimeOut); 
driver.switchTo().defaultContent(); 
driver.switchTo().frame(frameJCLeft); 

です「WebDriverでバックアップされたSelenium 1.0のもの」の代わりにRemoteWebDriverを使用してください。それから、私はWebDriver.TargetLocatorで遊んでいました。

+0

私は私がやっている正確に何が、私は、のためにとにかく感謝を正しい予想待機状態を見つけるcudnt「私はセレン担保webdriverをを排除し、唯一webdriverをAPIを使用することを計画しています」で述べたように返信メイト。 –

+0

フレームに表示されるページタイトルやその他のオブジェクトがブロックされ、待機する独自のonFrameLoad()メソッドを作成しようとしましたか?そのようなものを使って、ローカルのRemoteWebDriverに切り替えるときに再利用することができます。 – djangofan

関連する問題