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. 使用数据属性选择器​ 提高测试稳定性

相关推荐
心易行者16 分钟前
Python自动化测试7步落地法:用python在线运行省掉90%环境配置时间
java·开发语言·人工智能·python·log4j·ai编程
后台模板学习37 分钟前
从0到1用Vite构建电商订单系统前端性能优化方案
前端
Wang's Blog37 分钟前
Vibe Coding一人即团队系列58: HTML演示文稿自动生成
前端·人工智能·html
tedcloud1231 小时前
OpenLogi 怎么搭建?用 Rust 打造一个轻量的 Logitech 外设管理工具
linux·运维·服务器·开发语言·后端·rust·开源
FoldWinCard1 小时前
基于k8s高可用web集群
前端·容器·kubernetes
神探小白牙1 小时前
海康视频在vue2.0中的使用
前端·音视频
Tanjia_kiki1 小时前
谷歌浏览器中F12编辑并重发请求
开发语言·前端·javascript
程序猿编码1 小时前
基于GGML的C++17轻量化语音推理引擎:说话人识别与语音分析技术全解析
开发语言·c++·pytorch·深度学习·神经网络·大模型
honkun61 小时前
vue 表格组件 vxe-table 实现拖拽列字段自动生成透视表汇总
前端·javascript·vue.js
新中地GIS开发老师2 小时前
WebGIS开发入门 | 从 Web 开发到地图开发,差别在哪儿?
前端·vue·webgis