python - Python无法将参数从特征文件传递到黄瓜中的步骤定义
问题描述
我正在尝试使用 python 用黄瓜在 selenium 中实现 POM 模式。当我尝试将参数从黄瓜功能文件传递到步骤定义时被阻止。我已经在 stack over flow ( link ) 上进行了搜索,但解决方案对我没有多大帮助。
请找到我的工作并帮助我解决或将我重定向到任何资源,我在哪里可以找到支持..
这是我的功能文件并尝试传递参数
尝试调试但没有运气。另请注意,我正在尝试使用 python-behave 和直接从功能文件运行的 pycharm 执行测试。
我尝试过但没有奏效的解决方案:
1:来自功能文件:launch the application 'url_address'
在步骤定义文件中:@given('launch the application {url} ')
2:来自特征文件:launch the application 'url_address'
在步骤def文件中:@given('launch the application "{url}" ')
3:来自特征文件:launch the application '<url_address>'
在步骤def文件中:@given('launch the application "{url}"')
4:来自特征文件:launch the application '<url_address>'
在步骤def文件中:@given('launch the application "(.*)" ')
先感谢您
解决方案
问题是您对 step_definition 中的参数使用的引号不一致。
如果您在 step_definition 中使用单引号作为参数,您也需要在功能文件中这样做。
您必须遵循(不同的)step_definitions:
@given('Launch the application "(.*)"')
@then("Click on '(.*)' image")
你应该选择一种方法来做到这一点。两者都很好,但是如果您想保留它,您还需要在功能文件中以两种不同的方式调用它们。
快速解决
下面的 (.feature) 示例应该适用于您的 step_definitions ,如屏幕截图所示:
(双引号定义在step_definition中,所以feater中的参数使用双引号)
Given Launch the applicaion "https://www.whateverurl.com"
(step_definition 中定义了单引号,所以在 feature 参数中使用单引号)
Then Click on 'imageName' image
建议: 在您的 step_definitions 中使用单引号作为步骤名称,并使用双引号作为参数(就像您在“启动应用程序”步骤中所做的那样)。只要记住 ik 记住用双引号调用参数。
请让我知道这是否有帮助!
推荐阅读
- azure - 有没有办法在删除 Azure SQL 表中的记录时触发逻辑应用?
- sql - 缺少日期的 LEFT JOIN
- php - 无法从 PHP 上的 MySQL 响应中检索信息
- android - 从firebase android studio获取时列表视图中的数据重复
- selenium - 驱动程序实例必须符合 W3C 规范,以支持在使用 ImplicitWait 时获取超时值错误
- php - 使 Powershell CLI(环境)变量在 PHP 中可用
- javascript - 禁用按钮以避免多个表单提交
- python - 声明时类内的 Python 字段间引用
- string - 我可以用我的方法扩展内置的 String 类吗
- python - 使用 pyspark 进行均值偏移聚类