如何从 Python-Behave 步骤传递变量?
How can I pass a variable from the Python-Behave step?
基本上我写了一个步骤叫做
@When("I go to {url}")
然后我使用
When I go to http://youtube.com
成功了
但我想用
When I go to YouTube
css 选择器也会发生同样的情况(因为 Then logo is visible
看起来比 Then div#id.class is visible
更漂亮)
如何 link 一个包含此 css 选择器和 URL 作为我的步骤使用的变量的映射文件?
是这样的:
YouTube = "http://youtube.com"
logo = "div#id.class"
我试过了
def before_all(context):
global YouTube
YouTube = "http://youtube.com"
然后我会 eval(url)
在步骤中,但它一直说 YouTube 未定义
您应该使用预定义 URL 的字典而不是变量。将此添加到您的步骤实施文件中:
websites = {'youtube': 'http://youtube.com', 'somesite': 'http://somesite.com'}
@When("I go to {website}")
def when_i_go_to_website(context, website):
context.url = websites[website]
context.url
将在以下所有步骤中可用。
您可能希望用 try
/ except
包围代码行以捕获 KeyErrors。
基本上我写了一个步骤叫做
@When("I go to {url}")
然后我使用
When I go to http://youtube.com
成功了
但我想用
When I go to YouTube
css 选择器也会发生同样的情况(因为 Then logo is visible
看起来比 Then div#id.class is visible
更漂亮)
如何 link 一个包含此 css 选择器和 URL 作为我的步骤使用的变量的映射文件? 是这样的:
YouTube = "http://youtube.com"
logo = "div#id.class"
我试过了
def before_all(context):
global YouTube
YouTube = "http://youtube.com"
然后我会 eval(url)
在步骤中,但它一直说 YouTube 未定义
您应该使用预定义 URL 的字典而不是变量。将此添加到您的步骤实施文件中:
websites = {'youtube': 'http://youtube.com', 'somesite': 'http://somesite.com'}
@When("I go to {website}")
def when_i_go_to_website(context, website):
context.url = websites[website]
context.url
将在以下所有步骤中可用。
您可能希望用 try
/ except
包围代码行以捕获 KeyErrors。