微软开源最强Python自动化神器Playwright(不用写一行代码)攻略
什么是Playwright
Playwright是一个由Microsoft开源的Python自动化测试工具。它可以用于对Web应用进行测试和自动化操作,支持跨浏览器、跨平台,无需浏览器插件或者WebDriver并且速度更快、更稳定。
安装Playwright
- 安装Node.js和npm
Playwright是由Node.js编写的,所以需要首先安装Node.js和npm。下载地址:
- Node.js: https://nodejs.org/en/download/
-
npm: https://www.npmjs.com/get-npm
-
安装Playwright
安装命令如下,在命令行中输入:
npm install @playwright/test -D
开始使用Playwright
- 创建测试用例
在项目目录下创建一个test目录,然后在该目录下创建一个test.js文件,内容如下:
const { test, expect } = require('@playwright/test');
test('测试搜索框', async ({ page }) => {
await page.goto('https://www.baidu.com/');
await page.fill('input[name="wd"]', 'Playwright');
await page.click('input[id="su"]');
const title = await page.title();
expect(title).toBe('Playwright_百度搜索');
});
上面的代码中,我们创建了一个测试用例,测试了在百度上搜索Playwright并验证标题是否正确。
- 运行测试
在命令行中输入以下命令来运行测试:
npx playwright test
实例1:自动化测试网页
下面我们以以实现以下测试场景为例:
- 打开百度网站
- 点击百度首页上的新闻链接
- 验证新闻页面的标题是否为“百度新闻——全球最大的中文新闻平台”
代码如下:
const { test, expect } = require('@playwright/test');
test('测试打开百度新闻页面', async ({ page }) => {
// 打开百度网站
await page.goto('https://www.baidu.com/');
// 点击新闻链接
await page.click('a[name="tj_trnews"]');
// 验证页面标题是否为“百度新闻——全球最大的中文新闻平台”
const newsTitle = await page.title();
expect(newsTitle).toBe('百度新闻——全球最大的中文新闻平台');
});
实例2:多浏览器测试
Playwright支持在多个浏览器中执行测试,下面以Edge和Chrome为例:
const { PlaywrightTestConfig } = require('@playwright/test');
const config = PlaywrightTestConfig.fromEnv();
config.use({
browserName: 'chromium',
headless: false,
}, {
browserName: 'webkit',
headless: false,
}, {
browserName: 'firefox',
headless: false,
}, {
browserName: 'msedge',
headless: false,
});
module.exports = config;
上面的代码定义了四个不同的浏览器(chromium, webkit, firefox, msedge)用于测试,同时也可以指定是否需要使用headless模式来运行测试。
结语
通过Playwright,我们可以在不用写一行代码的情况下,自动化测试、屏幕截图、录制页面和模拟用户行为等操作。而且Playwright支持多浏览器和跨平台,是Web自动化测试领域的得力助手。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:微软开源最强Python自动化神器Playwright(不用写一行代码) - Python技术站