Playwright获取<div>内<dd>元素文本值失败问题求助
Playwright获取元素文本失败的解决办法
问题根源
- 参数未加引号:
getByTestId的参数employee1需要是字符串,必须加双引号或单引号,否则会被当成未定义变量处理。 - 异步方法未加await:
innerText()和textContent()都是异步方法,必须用await等待执行完成,否则拿到的不是实际文本内容,而是一个未兑现的Promise对象(也就是报错里的{})。
正确代码示例
方式一:先获取文本再断言
// 注意给testid加引号,同时用await调用异步方法 const elementText = await page.getByTestId("employee1").innerText(); await expect(elementText).toEqual('Sam');
方式二:链式断言(Playwright推荐写法)
直接对元素做文本断言,写法更简洁规范:
await expect(page.getByTestId("employee1")).toHaveText('Sam');
补充说明
如果使用textContent(),写法和innerText()逻辑一致,同样需要加await:
const elementText = await page.getByTestId("employee1").textContent(); await expect(elementText).toEqual('Sam');
内容的提问来源于stack exchange,提问作者Jeremy Grannan
相关产品推荐
相关产品推荐

