我已经安装了 Playwright vscode 扩展,但是当我进入测试区域时,我收到一条“在此工作区中未找到测试”消息。但当我$> playwright test在 CLI 上运行时,它就像一个魅力。奇怪的是,前段时间它在 VSCode 中运行得很好。
当我单击重新加载图标时,我得到
但几秒钟后我又回到了开始的地方。当我单击蓝色按钮时,我会转到扩展列表
我不太确定我应该在这里安装什么。而且,它在过去已经起作用了。
这是我为 Playwright 安装的扩展:
有什么建议吗?我的 VSCode 中发生了什么?
我们在量角器中有这样的: browser.driver.manage().window().setSize( width - 30, height );
剧作家如何实现这一目标?
automated-tests ui-automation typescript playwright playwright-test
我对剧作家很陌生。由于我的测试套件,我需要在运行每个测试之前登录我的应用程序。在一个简单的规范文件中,我可以简单地调用test.beforeEach. 我的问题是:我需要在每个规范文件的每次测试之前登录。
test.describe('Test', () => {
//I need to make the code inside this beforeEach a exported
//function to call inside the before each of every spec file I have
test.beforeEach(async ({ page }) => {
await page.goto('/login');
await page.click('text=Log in with Google account');
await page.fill('id=identifierId', LoginAutomationCredentials.USER);
await page.click('button[jsname="LgbsSe"]');
await page.fill('input[type="password"]', LoginAutomationCredentials.PASSWORD);
await page.click('button[jsname="LgbsSe"]');
const otp = authenticator.generateToken(LoginAutomationCredentials.TOKEN);
await page.fill('id=totpPin', otp);
await page.click('button[jsname="LgbsSe"]');
});
it('Some description', async ({ page }) => {
await page.goto('/foo');
const dateFilter = await …Run Code Online (Sandbox Code Playgroud) javascript automated-tests typescript playwright playwright-test
我已经使用 TypeScript 编写了 Playwright 测试,并且想在测试文件中使用 .env 中的变量,我该怎么做?
就像在 selenium 中一样,我们在 Playwright 中是否可以选择等待元素可点击?
我想记录剧作家测试用例中的变量之一,但无法在开发人员工具控制台中加载日志,因为我正在使用 page.on() 函数
test('largest contentful paint', async ({ page }) => {
await page.goto('http://localhost:3000/', { waitUntil: 'networkidle' });
const largestContentfulPaint = await page.evaluate(() => {
return new Promise((resolve) => {
new PerformanceObserver((l) => {
const entries = l.getEntries();
// the last entry is the largest contentful paint
const largestPaintEntry = entries.at(-1);
page.on('console', () => {
console.log('largestPaintEntry', largestPaintEntry);
});
// resolve(largestPaintEntry.startTime);
}).observe({
type: 'largest-contentful-paint',
buffered: true,
});
});
});
await expect(largestContentfulPaint).toBeLessThan(2500);
});
Run Code Online (Sandbox Code Playgroud) 我希望使用 Playwright 来测试网页。
我正在使用的系统有 4 个不同的环境,我们需要对其进行部署,例如测试 url 可能是
www.test1.com
www.test2.com
www.test3.com
www.test4.com
第一个问题是如何针对不同的环境?在我的剧作家配置中,我有一个 baseUrl 但我需要覆盖它。
此外,每个环境都有不同的登录凭据,我如何创建和覆盖这些作为每个环境的参数?
我在与剧作家一起编码测试自动化时遇到了问题。运行测试时,test.spec.ts 出现以下错误:
错误:找不到模块“@common/common” 代码:“MODULE_NOT_FOUND”
如何解决这个问题呢?
下面有代码
测试规格
import { chromium, ChromiumBrowser, Page } from "playwright";
import { test, expect, PlaywrightTestConfig } from "@playwright/test";
import Common from "@common/common";
test.beforeAll(async ({ page }) => {
});
test.describe('Go test', () => {
test('Test1', async ({ page }) => {
console.log("1111111111");
});
})
Run Code Online (Sandbox Code Playgroud)
包.json
{
"name": "type-sanity",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "ts-node -r tsconfig-paths/register src/main.ts",
"test": "npx playwright test"
},
"author": "",
"license": "ISC",
"dependencies": {
"@types/randomstring": "^1.1.7",
"playwright": …Run Code Online (Sandbox Code Playgroud) A 将多个测试文件放入扩展名为 spec.ts 的特定文件夹中,我如何使用 Playwright 运行特定文件。当前配置设置为测试文件夹并将运行其中的所有文件(测试):
testDir: './smokeTests',
假设这是配置文件中的某个选项,但问题是哪个选项
我有一个 Playwright 的 E2E 测试套件,可以在不同的浏览器和视口上运行。
我在我的中指定了不同的浏览器和视口playwright.config.ts:
projects: [
{
name: 'chromium',
use: {
...devices['Desktop Chrome'],
},
},
{
name: 'firefox',
use: {
...devices['Desktop Firefox'],
},
},
{
name: 'webkit',
use: {
...devices['Desktop Safari'],
},
},
/* Test against mobile viewports. */
{
name: 'Mobile Chrome',
use: {
...devices['Pixel 5'],
},
},
{
name: 'Mobile Safari',
use: {
...devices['iPhone 12'],
},
},
]
Run Code Online (Sandbox Code Playgroud)
有些测试需要根据视口执行不同的断言和点击。
例如,当视口变得足够小时,标题会缩小为汉堡菜单。在桌面上,标题中有一个“注销”按钮,但在移动设备上,您必须先打开汉堡菜单才能看到“注销”按钮。
如何编写仅在移动视口上运行的测试(反之亦然,仅在桌面视口上运行的测试)?
我能够让它与 Playwright 一起工作,但我不喜欢我的解决方案,并怀疑有更好的方法来做到这一点。
我从函数中获取了该isMobile属性test,然后添加了条件单击以在移动设备上打开汉堡菜单,如下所示:
test('given the user is logged …Run Code Online (Sandbox Code Playgroud) playwright ×10
playwright-test ×10
typescript ×5
javascript ×2
automation ×1
dotenv ×1
reactjs ×1