playwright读取剪切板(半解决)
方案
firefox
以下的代码,在firefox可以通过测试
test('test', async ({ page }) => {
// 访问目标页面
await page.goto('https://www.cnblogs.com/oldsaltfish/p/18825530');
// 点击触发复制操作的按钮
await page.getByText('Copy').first().click();
// 验证剪贴板内容
const clipboardText = await page.evaluate(async () => {
return await navigator.clipboard.readText();
});
// 预期的复制内容(根据实际内容替换)
const expectedText = '预期的复制内容';
// 断言剪贴板内容是否正确
expect(clipboardText).toBe(expectedText);
});
chromium
以下的代码,在chromium可以通过测试。
test('test', async ({ browser }) => {
// 创建一个新的浏览器上下文,并启用剪贴板权限
const context = await browser.newContext({
permissions: ['clipboard-read', 'clipboard-write'], // 启用剪贴板权限
});
// 创建一个新的页面
const page = await context.newPage();
// 访问目标页面
await page.goto('https://www.cnblogs.com/oldsaltfish/p/18825530');
// 点击触发复制操作的按钮
await page.getByText('Copy').first().click();
// 验证剪贴板内容
const clipboardText = await page.evaluate(async () => {
return await navigator.clipboard.readText();
});
// 断言剪贴板内容不为空
expect(clipboardText).not.toBe('');
// 关闭上下文
await context.close();
});
结论
- playwright似乎没有提供统一的接口来调用剪切板。
- playwright并不能够提供很好的调试能力,他的调试功能是为自己的测试功能所配备的。调试还是靠浏览器更靠谱,而且测试代码写起来也增加了额外的复杂度。
- 对于我们这些工作不是测试人员的人来说,没什么价值,这个东西可以用来写写爬虫或者自动签到。

浙公网安备 33010602011771号