如何使用java在selenium中执行静态等待?

问题描述 投票:-1回答:3

这非常令人沮丧。无论我到哪里,人们总是告诉我使用明确,隐含和流畅的等待。这些等待使您可以根据元素暂停。但是,光顾我们并删除工具和选项并不是一个好主意。在我目前的特定泡菜中,我有一个按钮,如果有人点击它太快就会消失。但是,它现在也被设计为立即出现。所以你必须等到它出现,然后等待足够的时间来经过,然后才点击按钮。有了这些建议,我觉得这是不可能的。在这种情况下,必须使用静态暂停或睡眠。出于某种原因,我甚至无法使用线程休眠,因为它似乎已经在Java 8本身或其他东西中被弃用。

java selenium thread-sleep fluentwait implicitwait
3个回答
0
投票

是什么原因让你觉得java.lang.Thread会被弃用?

所以即使在Java 11 docs它也没有被弃用。

所以如果你想使用它,请随意。 :-)


0
投票

隐式等待:

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

显式等待:

WebDriverWait wait = new WebDriverWait(WebDriverRefrence,TimeOut);

-1
投票

可能通过术语静态等待和静态暂停你的意思是Thread.sleep(),它在许多方面仍然有用。

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

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

所以,向前迈进你可以向Explicit Waits过渡。你可以在Replace implicit wait with explicit wait (selenium webdriver & java)找到详细的讨论。

在这一点上,实现Fluent Wait将更容易,你可以在Implicit vs Explicit vs Fluent Wait找到详细的讨论。

© www.soinside.com 2019 - 2024. All rights reserved.