尝试使用 toBeVisible() 断言来断言多个元素时遇到一些问题
Having some trouble trying to assert multiple elements with toBeVisible() assertion
我注意到 toBeVisible()
在调试模式下 运行 测试时检测到多个元素时失败。我还注意到 toBeVisible
在检测到断言中的多个元素时没有括号通过。
我想知道当检测到多个元素时,是否有方法让 toBeVisible() 带有括号传递,因为我需要为这种特定情况传递下面的超时参数,因为我等待的元素是一个渲染上传文档的页面可能需要 2 秒到 2 分钟才能显示
由于定位器附加到多个页面,以下行失败
await expect(locator).toBeVisible({ timeout: 10000 })
我目前所做的是更改配置文件中全局期望超时的值,因此
await expect(locator).toBeVisible;
有效,但我想知道是否有办法避免在全局范围内设置如此高的超时,而只使用文档中设置的方式,但对于具有多个元素的情况。
要声明多个元素,您可以这样做:
await expect(locator).toHaveCount(42);
要使定位器更具体,您可以将其缩减为:
await expect(locator).nth(42).toBeVisible();
选择第42个元素。或者只是将其更改为 0
.
之所以不带括号通过是因为它永远不会被调用,那你也可以直接去掉它。 :)
我注意到 toBeVisible()
在调试模式下 运行 测试时检测到多个元素时失败。我还注意到 toBeVisible
在检测到断言中的多个元素时没有括号通过。
我想知道当检测到多个元素时,是否有方法让 toBeVisible() 带有括号传递,因为我需要为这种特定情况传递下面的超时参数,因为我等待的元素是一个渲染上传文档的页面可能需要 2 秒到 2 分钟才能显示
由于定位器附加到多个页面,以下行失败
await expect(locator).toBeVisible({ timeout: 10000 })
我目前所做的是更改配置文件中全局期望超时的值,因此
await expect(locator).toBeVisible;
有效,但我想知道是否有办法避免在全局范围内设置如此高的超时,而只使用文档中设置的方式,但对于具有多个元素的情况。
要声明多个元素,您可以这样做:
await expect(locator).toHaveCount(42);
要使定位器更具体,您可以将其缩减为:
await expect(locator).nth(42).toBeVisible();
选择第42个元素。或者只是将其更改为 0
.
之所以不带括号通过是因为它永远不会被调用,那你也可以直接去掉它。 :)