当使用 Playwright、Puppeteer 和 Cypress 等工具执行端到端测试时,我相信所有这些工具(除了后者,如果我错了请原谅)只允许您使用每个浏览器的最新版本,即与每个版本捆绑在一起。
在这种情况下,我想知道运行端到端验收测试的真正好处是什么?这些测试只会针对更有限的场景验证功能,而不是确保您的应用程序仍然可以在 Chrome 70 上运行?
任何关于为什么只考虑最新的浏览器版本而忘记其余部分的见解都是一个好主意,通过使用 Playwright 而不是允许针对特定浏览器二进制文件进行定向测试的工具,例如,并使您的 E2E 测试结果如下:
PASS. Shopping-Cart (Modern)
FAIL. Shopping-Cart (chrome 70)
// Refactor
Run Code Online (Sandbox Code Playgroud)
代替
PASS. Shopping-Cart
// Yay! Release
Run Code Online (Sandbox Code Playgroud) 我正在使用 playwright 进行自动化测试。每次测试运行都会创建一个新的 chromium 实例。当我通过时,--auto-open-devtools-for-tabs它会按预期打开开发工具。但是,我需要更进一步并启用保留日志复选框。测试速度很快,我需要在重定向之前查看请求。
python google-chrome webautomation playwright playwright-python
我一直在尝试使用 Playwright 与 Google Maps 或 OpenStreetMaps 等网站的地图组件进行交互。我尝试使用 browser.mouse.move()、browser.mouse.up() 和 browser.mouse.down() 的组合,并以文字作为参数。当我运行它时,它似乎根本没有对地图做任何事情。
有没有办法用 Playwright 移动地图?
我创建了一个 GitHub 存储库,以便可以轻松复制。我也会把代码放在下面。 https://github.com/vincent-woodward/Playwright-Map-Interaction
const { chromium } = require("playwright");
(async () => {
const browser = await chromium.launch({ headless: false });
const page = await browser.newPage();
//await page.goto("https://www.google.com/maps");
await page.goto("https://www.openstreetmap.org/#map=4/38.01/-95.84");
await page.mouse.move(600, 300);
await page.mouse.down();
await page.mouse.move(1200, 450);
await page.mouse.up();
browser.close();
})();
Run Code Online (Sandbox Code Playgroud) 我有一个包含许多项目的测试配置文件(playwright.config.ts)。
通常,我想测试几种不同的浏览器。
但是,当我构建测试时,我只想使用单个浏览器/项目进行测试(因为在我处理测试时测试将会失败)。
我尝试了这个命令:
npx playwright test test.ts --browser='chromium'
Run Code Online (Sandbox Code Playgroud)
但我收到一个错误:
错误:配置文件定义项目时无法使用 --browser 选项。请在项目中指定 browserName。
如何“在项目中指定 browserName”以限制测试在一个浏览器上运行?
我的配置文件:
const config: PlaywrightTestConfig = {
projects: [
{
name: 'Chrome Stable',
use: {
browserName: 'chromium',
channel: 'chrome',
},
},
{
name: 'Safari MacBook Air',
use: {
browserName: 'webkit',
viewport: {
width: 2560,
height: 1620,
},
},
},
{
name: 'Firefox Desktop',
use: {
browserName: 'firefox',
viewport: {
width: 1920,
height: 1080,
},
},
},
{
name: 'iPhone 6/7/8',
use: devices['iPhone 8'], …Run Code Online (Sandbox Code Playgroud) npx playwright codegen https:/// page.goto: net::ERR_CERT_AUTHORITY_INVALID 位于 ...
如何通过 codegen 命令传递输入参数或身份验证凭据来打开 https url
我一直在尝试学习剧作家,在实现过程中,我尝试编写一个测试用例,通过名称查找输入元素并用一些值填充它
不幸的是,该元素只有类和名称属性。我一直在尝试找到一种阅读它的方法,但没有在文档中找到任何内容,或者我可能错过了
请帮忙
给出以下标记:
<label for="name">Name</label>
<input type="text" id="name" />
Run Code Online (Sandbox Code Playgroud)
我想在剧作家测试中填写输入值。但是,我更喜欢遵循类似于测试库的范例,它像真实用户一样使用选择器(通常是可见的文本内容)。因此,我希望我的剧作家选择器使用标签文本。
当我尝试以下操作时,我收到错误element is not an <input>,因为它选择了实际的标签元素:
await page.fill('"Name"')
还有其他方法可以实现这一目标吗?
注意:我不热衷于使用 Playwright 测试库包,因为它还不够成熟。另外,我的理解是 Puppeteer 和 Playwright 实际上是相同的,因此为什么这个问题适用于这两个框架。
// foo.ts
import { test as base } from "@playwright/test";
const test = base.extend<{foo: string}>({
foo: "hello"
});
export { test };
Run Code Online (Sandbox Code Playgroud)
// bar.ts
import { test as base } from "@playwright/test";
const test = base.extend<{bar: string}>({
bar: "bye"
});
export { test };
Run Code Online (Sandbox Code Playgroud)
// index.ts
import { test } from /* BOTH_FOO_AND_BAR??? */;
test("Basic test", async ({ foo, bar }) => { // <-- I want to be able to use both foo and bar fixture here
console.log(foo);
console.log(bar); …Run Code Online (Sandbox Code Playgroud) 最近我发现了剧作家,看起来真的很好。我发现的问题通常是在黄瓜或小黄瓜语法的实现中。例如,在 cypress 中,这里的任务非常简单,看起来我需要使用其他测试运行程序然后使用剧作家。这是真的还是我只是缺少剧作家中黄瓜的一些库/配置?感谢您的任何建议。
当我尝试运行时npx playwright install-deps出现错误。
\xe2\x9d\xaf npx playwright install-deps\nInstalling Ubuntu dependencies...\nSwitching to root user to install dependencies...\nHit:1 http://security.debian.org/debian-security bullseye-security InRelease\nHit:2 http://deb.debian.org/debian bullseye InRelease \nHit:3 https://updates.signal.org/desktop/apt xenial InRelease \nHit:4 https://repo.steampowered.com/steam stable InRelease \nHit:5 https://baltocdn.com/helm/stable/debian all InRelease \nHit:7 https://packages.microsoft.com/repos/ms-teams stable InRelease \nHit:8 http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/Debian_Testing InRelease\nHit:6 https://packagecloud.io/slacktechnologies/slack/debian jessie InRelease \nReading package lists... Done\nReading package lists... Done\nBuilding dependency tree... Done\nReading state information... Done\nNote, selecting \'libfontconfig1\' instead of \'libfontconfig\'\nPackage libjpeg-turbo8 is not available, but is referred to by another package.\nThis may mean that the package …Run Code Online (Sandbox Code Playgroud) playwright ×10
e2e-testing ×2
puppeteer ×2
angular ×1
cucumber ×1
cypress ×1
debian ×1
gherkin ×1
javascript ×1
python ×1
typescript ×1