12

我使用 webdriver 支持的 selenium 来等待特定帧的加载。因为在某些情况下,切换到特定帧会失败,因为该帧尚未加载。我使用的代码是

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

请让我知道是否有一种方法,因为我打算消除支持硒的 webdriver 并且只使用 webdriver api

4

2 回答 2

35

您可以使用 Web Driver Wait 和 Expected Condition 类来实现这一点。

试试这个代码。

  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)

于 2013-01-25T04:49:31.840 回答
-1

我会改用 Selenium 2,并使用 RemoteWebDriver 而不是“WebDriver 支持的 selenium 1.0 东西”。然后,我会玩WebDriver.TargetLocator

于 2013-01-25T04:15:26.347 回答