【问题标题】:WebDriver implicit wait is not working as expectedWebDriver 隐式等待未按预期工作
【发布时间】:2013-12-10 04:12:29
【问题描述】:
  1. WebDriver 隐式等待仅等待 10 秒,即使我给了 30 或 60 秒,在加载页面之前控制移动到下一步。 driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 这里我已经定义了像上面一样的隐式超时,如果我需要添加任何代码其他代码,请纠正我?

  2. webdriver 中是否有任何方法用于 waitforPageToLoad?我尝试使用driver.manage().timeouts().pageLoadTimeout(50, TimeUnit.SECONDS);,但它没有按预期工作。

请协助我。

【问题讨论】:

  • 在 selenium WebDriver 中你不需要把隐式等待页面加载 WebDriver 自动管理这个任务。直到你的网页没有完全加载它才会执行下一个命令。
  • Naveen,它没有等到页面/元素等待,我对此进行了研发,然后发布了这个问题。
  • 你在滥用隐式等待。在驱动程序构建的一开始就设置一次,并且只设置一次。

标签: java selenium webdriver selenium-webdriver selenium-grid


【解决方案1】:

如果你想等待特定元素加载它最好使用显式等待

【讨论】:

  • 是的,我可以使用显式等待,但我只是想知道,隐式等待是否有效?为什么它implicitwait 只需要 10 秒?
【解决方案2】:

当你说隐式等待只需要 10 秒时,你是什么意思?你的意思是当你发送隐式等待到 30 秒时,WebDriver 只需 10 秒即可找到元素?你确定其他东西没有破坏,给你一种隐含等待不起作用的错误感觉吗?

我过去曾通过示例回答过关于隐式和显式等待的类似问题。你可以找到它here。它还谈到了通用等待策略等。

【讨论】:

  • nilesh,这里的webdriver控件在完全加载页面之前进入下一步,它只等待10秒
  • 好的。这是您可以在公共网站上复制的东西吗?如果是这样,请更新您的问题并在 google selenium 项目上提交错误。至于您的问题,我认为您需要结合使用我在答案中上面链接中提到的显式等待和通用等待
【解决方案3】:

我不得不对特定问题使用隐式等待,但发现它没有完成应做的工作。 FluentWait 效果很好。

我最终使用 Thread.sleep() 来强制停止正在运行的进程,它确实完成了我的工作。

顺便说一句:我在 Firefox 27 和 31 版本上对其进行了测试。其他浏览器不知道!

【讨论】:

    猜你喜欢
    • 2012-08-15
    • 2019-04-19
    • 2020-03-04
    • 2019-04-07
    • 2022-01-22
    • 2018-12-02
    • 1970-01-01
    • 1970-01-01
    • 2013-11-24
    相关资源
    最近更新 更多