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

cucumber-js+playwright项目如何在steps.js中访问worldParameters的baseUrl

cucumber-js 中获取worldParameters配置项的方法

你在cucumber配置文件里定义的worldParameters参数,会被cucumber自动注入到步骤执行的World上下文里,直接在步骤定义中通过this.parameters就能取值,具体用法如下:


1. 配置校验

先确保你的cucumber.js配置文件结构符合规范,参考示例:

// cucumber.js
module.exports = {
  default: {
    worldParameters: {
      baseUrl: 'https://www.google.com'
    },
    require: ['./steps/**/*.js'], // 你的步骤文件存放路径
    // 其余原有配置保持不变即可
  }
}

2. 步骤文件中的使用方式

注意:步骤定义的回调函数不能用箭头函数,箭头函数会改变this指向,导致无法拿到World上下文,必须用普通function声明。

直接在步骤回调里通过this.parameters.baseUrl就能拿到配置值,结合playwright使用的完整示例:

// steps/home.steps.js
const { Given, Then } = require('@cucumber/cucumber');
const { chromium } = require('playwright');

Given('打开站点首页', async function () {
  // 直接读取配置里的baseUrl
  const { baseUrl } = this.parameters;
  
  // 结合playwright做页面跳转
  this.browser = await chromium.launch({ headless: false });
  this.page = await this.browser.newPage();
  await this.page.goto(baseUrl); // 直接使用拿到的地址
});

Then('校验页面加载正常', async function () {
  const title = await this.page.title();
  if (!title.includes('Google')) throw new Error(`页面标题异常,实际值:${title}`);
  await this.browser.close();
});

补充说明

  • 如果你用的是v6及更早的cucumber-js老版本,配置值挂载在this.worldParameters路径下,目前主流的v7+版本统一用this.parameters取值即可
  • 你后续往worldParameters里加的其他自定义参数(比如测试账号、环境标识等),都可以通过this.parameters.参数名的方式直接读取,不需要额外做注入操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 21:45:39