为什么测试需要比隐式指定的时间更长等待时间如果元素不存在则失败

时间:2019-04-16 03:43:08

标签: selenium

例如,我在代码中指定了driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS);。因此,理想情况下,如果不存在该元素,则应在50秒后使测试失败。但是需要大约2分钟的时间才能使元素未找到异常导致测试失败。有人可以清楚地解释隐式等待的概念吗?

1 个答案:

答案 0 :(得分:0)

正如您所提到的,您正在三种方法中使用隐式等待,您认为这是错误的,答案是-是的,这是错误的

看看硒开发人员提到了什么:

隐式等待:

一个隐式等待是,当试图查找一个或多个元素时,如果它们不立即可用,则告诉 WebDriver 轮询 DOM 一定的时间。默认设置为 0 。设置后,在WebDriver对象实例的生存期内设置隐式等待

对于一次执行,一旦编写:

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

您无需再次编写。即使您这样做也不会影响webdriver。

请注意,隐式等待工作在Web驱动程序级别。

我建议您在灯具或设置实例下编写隐式等待 代码

如果使用的是 TestNG ,则可以使用@BeforeMethod批注,并可以在其中写入隐式等待。

让我知道您是否还有其他顾虑。