Playwright + JS 进行页面跳转测试

目录

[1、 基本页面跳转测试](#1、 基本页面跳转测试)

[2、 新标签页跳转测试](#2、 新标签页跳转测试)

[3、 配置和设置](#3、 配置和设置)

关键点总结:


常见的跳转测试分为

1、基本页面跳转测试 - 点击link在当前页面跳转

2、新标签页跳转测试 - 点击link跳转之后跳转到一个新的tab

1、 基本页面跳转测试

javascript 复制代码
const { test, expect } = require('@playwright/test');

test('测试页面跳转', async ({ page }) => {
  // 导航到起始页面
  await page.goto('https://example.com');
  
  // 点击跳转链接
  await page.click('a[href="/target-page"]');
  
  // 验证是否跳转到目标页面
  await expect(page).toHaveURL('https://example.com/target-page');
});

2、 新标签页跳转测试

javascript 复制代码
const { test, expect } = require('@playwright/test');

test('新标签页跳转测试', async ({ page, context }) => {
  await page.goto('https://example.com');
  
  // 监听新页面打开事件
  const [newPage] = await Promise.all([
    context.waitForEvent('page'), // 等待新页面打开
    page.click('a[target="_blank"]') // 点击打开新标签页的链接
  ]);
  
  // 等待新页面加载完成
  await newPage.waitForLoadState();
  
  // 验证新页面的URL
  await expect(newPage).toHaveURL(/expected-url/);
  
  // 关闭新页面
  await newPage.close();
});

3、 配置和设置

在 playwright.config.js中配置导航选项:

javascript 复制代码
module.exports = {
  use: {
    // 默认导航超时时间
    navigationTimeout: 30000,
    // 默认等待直到网络空闲
    waitUntil: 'networkidle'
  }
};

关键点总结:

  1. **使用 waitForNavigation**​ 确保跳转完成

  2. 验证 URL ​ 使用 toHaveURL匹配器

  3. 处理新标签页 ​ 使用 context.waitForEvent('page')

  4. 添加适当的等待​ 处理异步跳转

  5. 使用数据属性选择器​ 提高测试稳定性

相关推荐
鬼手点金3 小时前
nanoGPT/nanochat 能做出 DeepSeek/Qwen 这样的大模型吗?
服务器·前端·javascript·bug·openclaw
软件技术NINI4 小时前
美妆商城html+Css+js 4页
javascript·css·html
蛋蛋的就会顺顺的4 小时前
hot100 p0——栈,贪心算法,动态规划
java·前端·javascript·算法·leetcode·力扣
程序员Sunday4 小时前
TypeScript 的 any、unknown、never 有什么区别?
前端·面试·typescript
朱涛的自习室4 小时前
70 美金的 Beyond Compare,我让 Gemini 4 和 DeepSeek 造个开源免费版(Day 2)
android·前端·人工智能
码艺-Alimjan5 小时前
Tauri 源码备份 · 打包 & 解压 总结,源码收集之路
前端·javascript·vue.js
小马不起床5 小时前
零基础玩转 FastAPI_11:前端后台管理页面
前端·状态模式·fastapi
死磕音视频5 小时前
让小模型做选择题:限定候选项并读取 logits 概率的入门实践(附 Python 代码)
开发语言·python·大模型·文本分类·transformers
子非鱼a6 小时前
【文件上传】一个普普通通的edu16
前端
美狐美颜SDK开放平台6 小时前
直播APP如何实现美白滤镜功能?视频美颜SDK技术开发方案详解
前端·数据库·人工智能·音视频·美颜sdk·直播美颜sdk·视频美颜sdk