【问题标题】:How to make selenium webdriver to wait for iframe to load completely if it is having only src attribute如果它只有 src 属性,如何使 selenium webdriver 等待 iframe 完全加载
【发布时间】:2018-06-22 19:10:58
【问题描述】:

如果只有 src 属性,如何让 selenium webdriver 等待 iframe 完全加载。 我正在尝试创建一个测试用例,其中包含表单元素的 iframe 从不同的源加载,在切换到此 iframe 时,此 iframe 的内容不可用,因此测试失败。那么我怎样才能让 Webdriver 等到 iframe 完全加载。

【问题讨论】:

  • 您需要等待内容加载,因此使用显式等待内容加载并执行操作。

标签: iframe selenium-webdriver


【解决方案1】:

这就是我在代码中的做法:

By by = By.xpath("//iframe[contains(@src,'')]");

    try
    {
        wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(by));

     //your actions on iframe here

}

【讨论】:

  • 它会等待帧完全加载吗?因为在我的情况下,框架需要很长时间才能加载几乎 15-20 秒的时间。感谢您的回复。
  • 既然这个frameToBeAvailableAndSwitchToIt接受字符串作为参数,我是否必须重新定义或重写这个方法来传递对象。
  • "wait" 这里基本上是 WebDriverWait wait = new WebDriverWait(driver, 200),200 秒是它继续寻找帧的时间。
【解决方案2】:

您可以使用driver.switchTo().frame(..) 切换到框架,然后等待元素加载到框架内。 使用隐式等待或显式等待执行此操作,最好使用显式等待。

【讨论】:

  • 嗨,rishi,我将隐式时间保持在 30 秒,因此没有使用显式时间,因为帧在 30 秒内加载。我的问题是它会等待框架完全加载吗?我已经在使用]
猜你喜欢
  • 2013-08-31
  • 1970-01-01
  • 1970-01-01
  • 2016-11-09
  • 1970-01-01
  • 2019-05-31
  • 1970-01-01
  • 2019-12-19
  • 1970-01-01
相关资源
最近更新 更多