标签: playwright-test

Playwright VSCode 给出“未找到测试”消息

我已经安装了 Playwright vscode 扩展,但是当我进入测试区域时,我收到一条“在此工作区中未找到测试”消息。但当我$> playwright test在 CLI 上运行时,它就像一个魅力。奇怪的是,前段时间它在 VSCode 中运行得很好。

在此输入图像描述

当我单击重新加载图标时,我得到

在此输入图像描述

但几秒钟后我又回到了开始的地方。当我单击蓝色按钮时,我会转到扩展列表

在此输入图像描述

我不太确定我应该在这里安装什么。而且,它在过去已经起作用了。

这是我为 Playwright 安装的扩展:

在此输入图像描述

有什么建议吗?我的 VSCode 中发生了什么?

visual-studio-code playwright playwright-test

20
推荐指数
2
解决办法
2万
查看次数

如何使用 playwright 在运行时实现浏览器大小调整?在端到端测试运行中

我们在量角器中有这样的: browser.driver.manage().window().setSize( width - 30, height );

剧作家如何实现这一目标?

automated-tests ui-automation typescript playwright playwright-test

16
推荐指数
1
解决办法
1万
查看次数

所有规格文件的每一个之前的剧作家

我对剧作家很陌生。由于我的测试套件,我需要在运行每个测试之前登录我的应用程序。在一个简单的规范文件中,我可以简单地调用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

14
推荐指数
1
解决办法
2万
查看次数

剧作家测试 - 使用 .env 文件中的变量

我已经使用 TypeScript 编写了 Playwright 测试,并且想在测试文件中使用 .env 中的变量,我该怎么做?

typescript dotenv playwright playwright-test

13
推荐指数
1
解决办法
3万
查看次数

Playwright - 如何等待元素可点击

就像在 selenium 中一样,我们在 Playwright 中是否可以选择等待元素可点击?

automation playwright playwright-test

13
推荐指数
2
解决办法
7万
查看次数

如何console.log in 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)

javascript reactjs playwright playwright-test

11
推荐指数
1
解决办法
2万
查看次数

Playwright - 针对不同环境和不同变量进行测试

我希望使用 Playwright 来测试网页。

我正在使用的系统有 4 个不同的环境,我们需要对其进行部署,例如测试 url 可能是

www.test1.com www.test2.com www.test3.com www.test4.com

第一个问题是如何针对不同的环境?在我的剧作家配置中,我有一个 baseUrl 但我需要覆盖它。

此外,每个环境都有不同的登录凭据,我如何创建和覆盖这些作为每个环境的参数?

playwright playwright-test

10
推荐指数
1
解决办法
2万
查看次数

TypeScript + Playwright 错误:找不到模块

我在与剧作家一起编码测试自动化时遇到了问题。运行测试时,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)

typescript playwright playwright-test

9
推荐指数
1
解决办法
2万
查看次数

如何使用 Playwright 运行特定文件?

A 将多个测试文件放入扩展名为 spec.ts 的特定文件夹中,我如何使用 Playwright 运行特定文件。当前配置设置为测试文件夹并将运行其中的所有文件(测试):

testDir: './smokeTests',

假设这是配置文件中的某个选项,但问题是哪个选项

playwright playwright-test

8
推荐指数
1
解决办法
1万
查看次数

如何在特定浏览器和视口上运行 Playwright 测试

我有一个 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)

typescript playwright playwright-test

8
推荐指数
1
解决办法
4527
查看次数