我使用 data-testid 来定位页面上的标题输入字段。输入字段具有标签“createTitle”,但是当我使用 getByTestId 方法定位它时,找不到该元素并且测试超时。使用 VS 代码功能选择定位器并选择我要访问的字段,返回要使用的建议:
locator('[data-testid="createTitle"]')
await test.step(`Input title as: ${title}`, async () => {
// Failing solution
await this.page.getByTestId("createTitle")
// Passing solution
await this.page.locator('[data-testid="createTitle"]')
.fill(title)
})
(显然,当我运行代码时,我注释掉了上述解决方案之一,我并没有尝试连续运行它们)
根据我对剧作家的理解,这些测试应该返回完全相同的字段,因为它们应该定位相同的标签,该标签显然是可访问的,否则第二个选项将不起作用,所以我不明白为什么 getbytestId 不起作用。
给出的超时错误信息是:
Test timeout of 30000ms exceeded.
Error: locator.fill: Test timeout of 30000ms exceeded.
Call log:
- waiting for getByTestId('createTitle')
我想使用 getByTestId 方法访问此页面元素,以使内容与代码中的其他位置保持一致。这是我第一次遇到这种方法表现不正常的情况