与剧作家一起测试元标签

Dar*_*lla 5 automated-tests meta-tags playwright

我想在 Playwright 中测试 Web 应用程序的元标记,但我在官方文档中没有找到任何信息。有人可以建议我进行元数据测试吗?

例如,我尝试测试: <meta name="description" content="something">

test("Meta data", async ({ page }) => {
         await page.goto(env.baseUrl)
         const metaDescription = page.locator('meta [name="description"]')
         await expect(metaDescription).toHaveText("something")
})
Run Code Online (Sandbox Code Playgroud)

结果是:

  • 接收到的字符串是“”
  • 等待选择器'元[name =“description”]'

出了什么问题以及如何以正确的方式进行测试?

ste*_*dis 8

您的定位器选择器没有匹配任何内容。meta [name="description"]目标元素位于meta具有 属性的元素内name="description"。要定位元元素本身,您必须使用meta[name="description"](注意删除的空格)。

此外,meta 元素保存属性中的文本content。这就是为什么toHaveText不能工作。尝试toHaveAttribute一下。

这是固定版本:

const { test, expect } = require('@playwright/test');
    
test('basic test', async ({ page }) => {
  await page.goto('https://your-site.com');
  const metaDescription = page.locator('meta[name="description"]');
  await expect(metaDescription).toHaveAttribute('content', 'something')
});
Run Code Online (Sandbox Code Playgroud)