Как дождаться загрузки определенного кадра? Я использую selenium webdriver 2.24


Я использовал selenium с поддержкой webdriver, чтобы дождаться загрузки определенного кадра. так как в некоторых случаях переключение на определенный кадр не удается, потому что кадр не загружен. Я использую код

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

Пожалуйста, дайте мне знать, если есть метод, поскольку я планирую устранить selenium backed webdriver и использовать только api webdriver

2 7

2 ответа:

Вы можете использовать веб-ждать водителя и ожидаемое условие для достижения этой цели.

Попробуйте этот код.

  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)

Я бы переключился на использование Selenium 2 и использовал RemoteWebDriver вместо "WebDriver backed selenium 1.0 stuff". Затем я играл с WebDriver.TargetLocator .