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

Playwright中如何比较两个page.locator的值?

在Playwright中比较两个page.locator的值

当然可以,但不能直接比较page.locator实例本身——因为page.locator()返回的是定位器对象,不是元素的实际值。你需要先获取定位器对应的文本、属性值等实际内容,再进行比较。

举个贴合你场景的例子:

1. 获取文本内容后比较

如果产品编号是显示在页面上的文本,先通过textContent()获取实际文本值再对比:

// 获取第一个产品编号的文本
const poNumberText = await page.locator('xpath-to-first-po-element').textContent();
// 获取第二个产品编号的文本
const targetPoText = await page.locator('xpath-to-second-po-element').textContent();

// 执行比较逻辑(trim()用于去除文本前后空格,可根据实际情况调整)
if (poNumberText?.trim() === targetPoText?.trim()) {
  console.log("两个产品编号一致");
} else {
  console.log("两个产品编号不一致");
}

2. 获取属性值后比较

如果产品编号是输入框的value属性,或者元素的其他自定义属性(比如data-po),用getAttribute()获取属性值:

const poNumberValue = await page.locator('xpath-to-po-input').getAttribute('value');
const targetPoValue = await page.locator('xpath-to-target-input').getAttribute('value');

if (poNumberValue === targetPoValue) {
  // 你的业务逻辑处理
}

3. 用Playwright断言直接验证

如果是自动化测试场景,推荐用Playwright自带的断言库,写法更简洁规范:

// 断言两个元素的文本完全相等
await expect(page.locator('xpath-to-first-po-element')).toHaveText(page.locator('xpath-to-second-po-element'));

// 断言两个输入框的value属性相等
const targetValue = await page.locator('xpath-to-target-input').getAttribute('value');
await expect(page.locator('xpath-to-po-input')).toHaveAttribute('value', targetValue);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 18:40:26