编程

Playwright,一个用于 Web 测试和自动化的框架

757 2023-05-27 23:39:00

Playwright 是微软开源的一个用于 Web 测试和自动化的框架, 提供了可靠的端到端测试, 功能非常强大, 可以在测试, 爬虫,自动化场景中使用。

跨浏览器

Playwright 支持所有现代的渲染引擎,包括 Chromium、WebKit 和 Firefox。

跨平台

在 Windows, Linux 和 macOS 提供相同的使用体验。

跨语言

多语言支持, TypeScript, JavaScript, Python, .NET, Java.

录制、自动代码生成 、重放

安装 Playwright 和浏览器

备注

Playwright 需要Node.js版本 12 或更高版本。 从命令行运行 node -v ,确保具有兼容版本的 Node.js。 Chromium、Firefox 和 WebKit 的浏览器二进制文件跨 Windows、macOS 和 Linux 工作。 有关详细信息,请参阅 Playwright 系统要求

首先,安装 Playwright 测试 以测试网站或应用:

npm i -D @playwright/test

若要安装浏览器,请运行以下命令,以下载ChromiumFirefoxWebKit

npx playwright install 

运行基本测试

Playwright 使用的方法对于其他浏览器测试框架(如 WebDriverPuppeteer)的用户会很熟悉。 可以创建浏览器实例,在浏览器中打开页面,然后使用 Playwright API 操作页面。

Playwright 测试是 Playwright 的测试运行程序,它为你启动浏览器和上下文。 然后,独立页面将传递到每个测试中,如以下基本测试所示:

// tests/foo.spec.ts
import { test, expect } from '@playwright/test';

test('basic test', async ({ page }) => {
  await page.goto('https://playwright.dev/');
  const title = page.locator('.navbar__inner .navbar__title');
  await expect(title).toHaveText('Playwright');
});

现在运行测试,如下所示:

npx playwright test

有关运行测试的详细信息,请参阅 Playwright > 入门

在 Microsoft Edge 中运行测试

若要在 Microsoft Edge 中运行测试,需要为 Playwright 测试创建配置文件,例如 playwright.config.ts。 在配置文件中,使用 Microsoft Edge 创建一个项目。

// playwright.config.ts
import { PlaywrightTestConfig } from '@playwright/test';

const config: PlaywrightTestConfig = {
  projects: [
    {
      name: 'Microsoft Edge',
      use: {
        // Supported Microsoft Edge channels are: msedge, msedge-beta, msedge-dev, msedge-canary
        channel: 'msedge',
      },
    },
  ],
};

export default config

如果系统上尚未安装 Microsoft Edge,请通过 Playwright 进行安装,如下所示:

npx playwright install msedge

使用上述 playwright.config.ts 文件时,Playwright Test 使用 Microsoft Edge 运行测试,如下所示:

npx playwright test --headed

使用 Playwright 作为库

还可以使用 Playwright 作为库,如以下代码所示。 此方法允许使用不同的测试运行程序。

// example.js
const playwright = require('playwright');

(async () => {
  const browser = await playwright.chromium.launch({
    channel: 'msedge',
  });
  const context = await browser.newContext();
  const page = await context.newPage();
  await page.goto('https://www.microsoft.com/edge');
  await page.screenshot({ path: 'example.png' });

  await browser.close();
})();

example.js 是 Playwright 启用的自动化和测试方案的简单演示。 若要在其他 Web 浏览器中获取屏幕截图,请将上述代码从 await playwright.chromium.launch 更改为以下代码:

火狐:

  const browser = await playwright.firefox.launch({

Webkit:

  const browser = await playwright.webkit.launch({