这是我开始与剧作家,我试图测试我的React应用程序与它。
这里可能有一个类似的问题,但是我已经尝试了StackOverflow和Github问题中所有可能的非特定答案。
这是我的考验:
import {expect, test} from "@playwright/test";
test.describe('App general functionality', () => {
test('Theme switches normally', async ({page}) => {
const app = await page.getByTestId('app');
const themeSwitch = await page.getByTestId('themeSwitch');
const classList = await app.evaluate(node => {
console.log(node);
});
// const classList = await app.getAttribute('class');
});
});
我试着为toHaveClass
安装扩展的expect类型,并检查app
是否存在。在控制台中,它返回app
内部的定位器和元素。App是应用程序根div
上的测试ID。
然而,误差是恒定的:
locator.evaluate: Target closed
=========================== logs ===========================
waiting for getByTestId('app')
============================================================
是这样一句话:
const classList = await app.evaluate // or app.getAttribute('class')
应用程序部门:
<div data-test-id={'app'} className={`app ${appStore.isDarkTheme ? 'dark' : 'light'}`}>
1条答案
按热度按时间cngwdvgl1#
我认为测试id设置不正确,根据下面的实验应该是
data-testid
:如果无法更改元素的属性,可以尝试
也许更习惯一点(假设您已经修复了
testid
):这可以处理额外的类和类的不同排序。