【问题标题】:How do i wait for a specific frame to load? I'm using selenium webdriver 2.24我如何等待特定帧加载?我正在使用 selenium webdriver 2.24
【发布时间】:2013-01-25 04:01:15
【问题描述】:

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

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

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

【问题讨论】:

    标签: webdriver frames


    【解决方案1】:

    您可以使用 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)

    【讨论】:

    • 如果我在两个环境中为同一个框架有两个不同的名称,我是否可以在这里引入一个“或”语句?
    • 链接上的404
    【解决方案2】:

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

    【讨论】:

    • 正如我提到的“我计划消除支持硒的 webdriver 并且只使用 webdriver api”正是我正在做的,但我找不到正确的预期等待条件,无论如何感谢回复伙伴.
    • 您是否尝试过创建自己的 onFrameLoad() 方法来阻止并等待页面标题或其他预期对象出现在框架中?有了类似的东西,你可以在切换到本地 RemoteWebDriver 时重新使用它。
    • Webdriver.TargetLocator 链接不再有效
    猜你喜欢
    • 2019-01-31
    • 2013-08-31
    • 2023-03-30
    • 1970-01-01
    • 2019-05-31
    • 2015-06-11
    • 2012-07-07
    • 2016-09-14
    • 2013-12-31
    相关资源
    最近更新 更多