例如,我在代码中指定了driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS);
。因此,理想情况下,如果不存在该元素,则应在50秒后使测试失败。但是需要大约2分钟的时间才能使元素未找到异常导致测试失败。有人可以清楚地解释隐式等待的概念吗?
答案 0 :(得分:0)
正如您所提到的,您正在三种方法中使用隐式等待,您认为这是错误的,答案是-是的,这是错误的。
看看硒开发人员提到了什么:
隐式等待:
一个隐式等待是,当试图查找一个或多个元素时,如果它们不立即可用,则告诉 WebDriver 轮询 DOM 一定的时间。默认设置为 0 。设置后,在WebDriver对象实例的生存期内设置隐式等待。
对于一次执行,一旦编写:
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
您无需再次编写。即使您这样做也不会影响webdriver。
请注意,隐式等待工作在Web驱动程序级别。
我建议您在灯具或设置实例下编写隐式等待 代码。
如果使用的是 TestNG ,则可以使用@BeforeMethod
批注,并可以在其中写入隐式等待。
让我知道您是否还有其他顾虑。