这很令人沮丧。在我看到的任何地方,人们一直告诉我使用显式、隐式和流畅的等待。这些等待使您可以根据元素暂停。但是,光顾我们并删除工具和选项并不是一个好主意。在我当前的特定泡菜中,我有一个按钮,如果有人点击它太快就会消失。但是,它也被设计为现在立即显示。所以你必须等到它出现,然后等待足够的时间过去,然后才点击按钮。有了这些建议,我认为这是不可能的。在这种情况下,必须使用静态暂停或睡眠。出于某种原因,我什至不能使用线程睡眠,因为它似乎在 Java 8 本身或其他东西中已被弃用。
问问题
1789 次
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 应用程序是通过JavaScript、Angular、ReactJS等构建的,因此显式等待将是前进的方向。
因此,继续前进,您可以过渡到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
于 2019-03-31T11:50:16.667 回答