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

如何将JavaScript测试数据表转换为Python(BDD+Selenium场景)

Python等价实现(基于Behave BDD框架)

以下是对应你JavaScript代码的Python实现,适配Selenium+Behave的BDD测试场景:

from behave import step
from selenium.webdriver.common.by import By

@step('step title "{first_input}"')
def step_impl(context, first_input):
    # 把Gherkin数据表格转成字典列表,对应JS的dataTable.hashes()
    data_rows = context.table.as_list_of_dicts()
    
    match first_input:
        case 'First Case':
            for elem in data_rows:
                table_title = elem['titleOfDataTable']
                match table_title:
                    case 'First Data':
                        # 替换成你的Selenium操作,比如:
                        # context.driver.find_element(By.ID, "first-data-btn").click()
                        pass
                    case 'Second Data':
                        # 替换成你的操作
                        pass
                    case 'Third Data':
                        # 替换成你的操作
                        pass
                    case _:
                        # 抛出异常,对应JS的throw new Error
                        raise Exception("<someMessage>")
        case _:
            # 替换成你的默认操作
            pass

核心语法对应说明

  • dataTable.hashes() → 用Behave的context.table.as_list_of_dicts(),直接将Gherkin表格转换为字典列表,每个字典对应一行数据,键为表头名称。
  • forEach() → Python直接用for elem in data_rows循环遍历,逻辑与JS完全一致。
  • switch/case → 使用Python 3.10+支持的match/case语法;若使用低版本Python,可替换为if-elif-else结构实现相同逻辑。
  • throw new Error → Python中用raise Exception("错误信息")抛出异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 08:12:27