You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Playwright expect断言两个精确匹配值中的一个?

精确匹配维基百科桌面/移动域名的Playwright断言实现

针对维基百科会根据设备类型重定向到m子域名的问题,我们可以修改断言函数,自动生成桌面和移动两个预期URL,再用Playwright的toBeOneOf方法做精确匹配,无需模糊匹配。

修改后的函数实现

import { Page } from '@playwright/test';

export const assertThirdPartyInternetPath = async (
  page: Page,
  targetPath: string,
) => {
  // 解析目标URL,生成对应的移动版URL
  const targetUrl = new URL(targetPath);
  const mobileDomain = targetUrl.host.replace('en.', 'en.m.');
  const mobileTargetUrl = new URL(targetUrl.pathname, `https://${mobileDomain}`).href;

  // 断言当前页面URL是桌面版或移动版的精确匹配
  expect(page.url()).toBeOneOf([targetPath, mobileTargetUrl]);
};

调用方式

和原来完全一致,无需额外传参:

await this.assertThirdPartyInternetPath(page, 'https://en.wikipedia.org/wiki/Larry_Sanger');

逻辑说明

  • 用原生URL对象解析目标地址,避免手动拼接字符串可能出现的错误
  • 替换域名中的en.为en.m.生成移动版域名,完整保留原路径部分
  • 使用Playwright内置的toBeOneOf断言方法,精确匹配两个预期URL中的任意一个

这样既满足了精确匹配的要求,又自动兼容了桌面和移动设备的重定向场景。

内容的提问来源于stack exchange,提问作者Patrick Kenny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 04:42:38