当我传递的参数之一是步骤语句本身的一部分时,我正面临一个python行为的问题,正在解析一个步骤定义。
以下是步骤定义
@when(u'I set the value of {setting} to {value} in configuration')
def **step_imp**(context, setting, value):
print ("Setting:", setting , " Value:", value)
pass
我的特征样本看起来就像
Scenario: Configuration Update
Given I can access the configuration file
When I set the value of **CDROM Drive** to **G:** in configuration
When I set the value of **USB TO IGNORE** to **USB2.0** in configuration
它适用于第一个when语句。但是对于第二个When语句,行为解析器解析并给出参数{ But }作为USB和{value}作为USB2.0。由于 " TO“是步骤本身的一部分,所以在解析USB以忽略时,行为解析器忽略”TO“中的单词。
有没有可能的解决方案而不忽略参数中的空格?谢谢
发布于 2017-07-19 15:53:05
是的,只需使用双引号,而不是围绕在功能文件中的参数周围的星号,而且(这也是使' to‘出现的区别所在),将双引号放在步骤文件中的花括号周围,例如@when(u'I set the value of "{setting}" to "{value}" in configuration')
。我也不认为你需要**step_imp**
周围的星号。但我对蟒蛇的行为很有兴趣。
如果有人出于与我相同的理由在这里结束,,如何在参数中避免双引号。在双引号之前,您似乎只是使用了一个正斜杠,\
。这是我第一次尝试,但还有其他原因导致我的测试得到了一个解析错误,而且我找不到任何人明确地说它是一个正斜杠,可以在任何地方逃逸,所以想要将它记录在某个地方,以防其他人最终陷入白费力气。
Scenario: If we enter an xss attack it should not work on another page
Given I am on "/example-page"
When I set current element to search field
and I send the attack "\">alert(1)"
Then I am on "/?s=%5C\"><%2Flabel><h1+id%3DXSS>Hello<%2Fh1><label><input+#search-form"
and there should not be an element with this locator "h1#XSS"
发布于 2017-07-13 15:37:23
用引号包围您的步骤参数?
https://stackoverflow.com/questions/44809162
复制相似问题