我正在使用 jest-playwright 库(https://github.com/playwright-community/jest-playwright)来执行端到端测试。在 jest.config.js 文件中,您可以设置一个选项来忽略 SSL 错误:
contextOptions: {
ignoreHTTPSErrors: true,
}
用 jest 运行测试时效果很好。
现在,我希望剧作家在使用命令
npx playwright codegen example.com
单击网站元素时生成代码。然而,打开网站时,Playwright 由于 SSL 错误而停止。另一个选项是配置
test
以忽略 HTTPS 错误。
import { test } from "@playwright/test";
test.use({
ignoreHTTPSErrors: true,
});
test("test", async ({ page }) => {
await page.goto(
"https://example.com/"
);
});
NB -
test.use...
是运行时包含的内容 npx playwright codegen --ignore-https-errors
。
更新 该设置也可以包含在您的
playwright.config.ts
文件中(请参阅文档)。
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
ignoreHTTPSErrors: true,
},
});
编辑
playwright.config.ts
并添加:
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
ignoreHTTPSErrors: true,
},
});
您可以使用以下命令运行代码生成器:
npx playwright codegen --ignore-https-errors https://example.com
可以发现正在运行
codegen
的其他选项 npx playwright codegen --help
。
您可以使用自定义设置运行codegen。只需在初始脚本中调用
page.pause()
,如果运行 node my-initial-script.js
,它将打开 codegen 控件。
带有 browser.newContext({ ignoreHTTPSErrors: true })
的示例代码 看起来像这样:
// my-initial-script.js
const { chromium } = require('playwright');
(async () => {
// Make sure to run headed.
const browser = await chromium.launch({ headless: false });
// Setup context however you like.
const context = await browser.newContext({ /* pass any options */ ignoreHTTPSErrors: true });
// Pause the page, and start recording manually.
const page = await context.newPage();
await page.pause();
})();
然后您可以毫无问题地访问 https://expired.badssl.com/ 并像通常使用 codegen 一样记录您的操作。