-1

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

4

3 回答 3

0

隐式等待:

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

显式等待:

WebDriverWait wait = new WebDriverWait(WebDriverRefrence,TimeOut);
于 2019-03-31T11:43:01.220 回答
0

可能通过您所说的静态等待静态暂停Thread.sleep()这两个术语在许多方面仍然有用。

但是,通过Selenium执行测试时,诱导睡眠并不是解决问题的优雅解决方案,因为诱导会降低整体测试执行性能在转到下一页之前,您可以在 Selenium 中找到详细的讨论。Thread.sleep(1000);

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

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

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

于 2019-03-31T20:29:38.657 回答
0

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

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

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

于 2019-03-31T11:50:16.667 回答