当我在PLAYRITRITE中运行测试时,断言总是失败.它与h2元素不匹配,即使页面确实显示了它.

我的测试代码:

import { test, expect } from '@playwright/test';

test('Thomann', async ({ page }) => {
  await page.goto('https://www.thomann.de/intl/index.html');
  await page.locator('xpath=/html/body/div[2]/div/div/div/div[2]/button[1]').click();
  await expect(page.getByRole('heading', { name: 'Nuestras categorías' })).toBeVisible();
});

日志(log)错误:

Error: Timed out 5000ms waiting for expect(locator).toBeVisible()

Locator: getByRole('heading', { name: 'Nuestras categorías' })
Expected: visible
Received: hidden
Call log:
  - expect.toBeVisible with timeout 5000ms
  - waiting for getByRole('heading', { name: 'Nuestras categorías' })

推荐答案

我不知道你怎么想,但我被重定向到https://www.thomannmusic.com/index.html了.可能是因为我在美国.在任何情况下,我建议你用npx playwright test --headed来确保你在正确的地方结束.

否则,如果我使用英文文本,代码将对我起作用:

import {expect, test} from "@playwright/test";

test("has an 'Our Categories' heading after redirect and cookie reject", async ({page}) => {
  await page.goto("https://www.thomann.de/intl/index.html");
  await expect(page).toHaveURL("https://www.thomannmusic.com/index.html");
  await page.getByRole("button", {name: "Reject Cookies"}).click();
  await expect(page.getByRole("heading", {name: "Our Categories"})).toBeVisible();
});

注意,我没有使用xpath,这是不鼓励的,因为它不是user-visible,而且它很脆弱,因为如果链中的单个div发生更改,路径将不再有效.

Typescript相关问答推荐

使用FormArray在Angular中添加排序

React-Native运行方法通过监听另一个状态来更新一个状态

typescript抱怨值可以是未定义的,尽管类型没有定义

使用带有RxJS主题的服务在Angular中的组件之间传递数据

TypeScript Page Routing在单击时不呈现子页面(React Router v6)

`((PrevState:NULL)=>;NULL)|null`是什么意思?

使用泛型keyof索引类型以在if-condition内类型推断

如何在TypeScrip中从字符串联合类型中省略%1值

我想创建一个只需要一个未定义属性的打字脚本类型

如何将所有props传递给React中的组件?

ANGLE独立组件布线错误:没有ActivatedRouting提供程序

MatTool提示在角垫工作台中不起作用

是否将自动导入样式从`~/目录/文件`改为`@/目录/文件`?

防止重复使用 Select 器重新渲染

回调函数中的TypeScrip类型保护返回Incorect类型保护(具有其他未定义类型的返回保护类型)

为什么看起来相似的代码在打字时会产生不同的错误?

是否有可能不允许在 TypeScript 中设置类属性,但也会抛出运行时错误?

如何从 Select 元素中删除选项

基于泛型的柯里化函数的条件参数

类型string不可分配给类型string| 联盟| 的'