web-dev-qa-db-ja.com

特定のフレームがロードされるのを待つにはどうすればよいですか? Selenium webdriver2.24を使用しています

WebドライバーでバックアップされたSeleniumを使用して、特定のフレームがロードされるのを待ちました。フレームがロードされていないために特定のフレームへの切り替えが失敗する場合があるためです。私が使用するコードは

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

SeleniumでバックアップされたWebドライバーを削除し、WebドライバーAPIのみを使用することを計画しているため、方法があるかどうかを教えてください

11
cc_nuuB

これを実現するには、Web DriverWaitおよびExpectedConditionクラスを使用できます。

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

  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)

32
Manigandan

Selenium 2の使用に切り替え、「WebDriverがサポートするSelenium1.0のもの」の代わりにRemoteWebDriverを使用します。次に、 WebDriver.TargetLocator で遊んでみます。

0
djangofan