【问题标题】:How do I perform a static wait in selenium using java?如何使用 java 在 selenium 中执行静态等待?
【发布时间】:2019-03-31 11:36:53
【问题描述】:

这很令人沮丧。在我看到的每一个地方,人们一直告诉我使用显式、隐式和流畅的等待。这些等待使您可以根据元素暂停。但是,光顾我们并删除工具和选项并不是一个好主意。在我当前的特定泡菜中,我有一个按钮,如果有人点击它太快就会消失。但是,它也被设计为现在立即显示。所以你必须等到它出现,然后等待足够的时间过去,然后才点击按钮。有了这些建议,我认为这是不可能的。在这种情况下,必须使用静态 pausesleep。出于某种原因,我什至不能使用线程睡眠,因为它似乎在 Java 8 本身或其他东西中已被弃用。

【问题讨论】:

  • 在按钮外观和可点击按钮之间的 html 中是否有任何变化?为什么你认为 Thrrad.sleep() 在 Java 8 中被弃用了?
  • 我建议显式等待按钮出现,然后使用 Thread.sleep 等待最少的时间,以确保它没有被过快地点击并且不会在这个特定的场景中消失
  • 还有用于 Thread.sleep 的 Java 8 文档(它没有被弃用)docs.oracle.com/javase/8/docs/api/java/lang/… 最好有更多关于您所看到的错误的详细信息,以帮助您解决问题的 Thread.sleep 部分

标签: java selenium thread-sleep fluentwait implicitwait


【解决方案1】:

让您认为java.lang.Thread 将被弃用的来源是什么?

因此,即使在 Java 11 docs 中,它也不会被弃用。

因此,如果您想使用它,请随意。 :-)

【讨论】:

  • 无论我使用什么导入,我似乎都无法让命令停止出错。
  • 请显示您正在使用的导入以及相应的错误消息和弃用警告。
【解决方案2】:

隐式等待:

driver.manage().timeouts().implicitlyWait(TimeOut, TimeUnit.SECONDS);   

显式等待:

WebDriverWait wait = new WebDriverWait(WebDriverRefrence,TimeOut);

【讨论】:

    【解决方案3】:

    可能通过 static waitstatic pause 这两个术语,您的意思是 Thread.sleep(),这在许多方面仍然有用。

    然而,在通过 Selenium 执行 Tests 时,诱导 sleep 并不是解决问题的优雅解决方案,因为诱导 Thread.sleep(1000);降低整体测试执行性能。你可以在Selenium needs a sleep before going to the next page找到详细的讨论。

    如果您需要诱导等待Implicit Waits 是一个很好的开始方式。您可以在Using implicit wait in selenium 中找到详细讨论。然而,由于当前的 Web 应用程序 是通过 JavaScriptAngularReactJS 等构建的,因此显式等待将是前进的方向。

    因此,继续前进,您可以过渡到 Explicit Waits。你可以在Replace implicit wait with explicit wait (selenium webdriver & java)找到详细的讨论。

    此时,实现Fluent Wait 会容易得多,您可以在Implicit vs Explicit vs Fluent Wait 中找到详细讨论。

    【讨论】:

    • 使用Thread.sleep() 等待元素等不是一个好习惯,但是如果您需要像OP 一样在页面上为特定的东西计时,使用它就可以了。正如我之前提到的,对于 Selenium 贡献者来说,使用隐式等待并不是最佳实践。显式等待和 Fluent 等待基本相同,显式等待只是预先打包的等待,两者都是“最佳实践”等待。
    • +1 从不使用隐式等待,总是使用显式等待(显式等待建立在流畅等待之上,我同意它们对于所有意图和目的都是相同的。流畅等待只是显式等待等待一些额外的配置选项)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-11
    • 2013-12-31
    • 2019-07-25
    • 1970-01-01
    • 2023-03-10
    • 2023-04-05
    相关资源
    最近更新 更多