无法在 RobotFramework 中存储变量值
Cannot store variable values at RobotFramework
例如,我们有:
Get ticket value
Wait Until Element is Visible ${ticketDescription}
${ticketDescValue}= Execute Javascript return window.document.querySelector('p[class*="ticket-description"]').innerHTML.toString()
Verify if ticket value matches
Element Text Should Be ${some_locator} ${ticketDescValue}
其中,${ticketDescValue} 是预期的文本
测试用例示例:
*** Test Cases ***
Ticket value is correct
[Documentation] OK: test test test
[Tags] Add to basket
Go to some URL
Get ticket value
Navigate to product details page
Verify if ticket value matches
有什么方法可以在现有关键字之间共享变量吗?
在 Java 中,我可以为这种情况使用 getter 和 setter。
或向方法发送参数等...
如何使用Robot Framework实现?
您需要在赋值行之后使用类似于以下内容的内容将变量值设置为全局变量或套件变量:
Set Suite Variable ${ticketDescValue}
或者,您可以 return 来自第一个关键字的变量并将其作为参数传递给第二个关键字
更好的方法是将 Get ticket value
关键字修改为 return 参数,并将 Verify if ticket value matches
关键字修改为将门票值作为参数。这样你就不需要使用全局变量了。
Get ticket value
Wait Until Element is Visible ${ticketDescription}
${ticketDescValue}= Execute Javascript return window.document.querySelector('p[class*="ticket-description"]').innerHTML.toString()
[Return] ${ticketDescValue}
Verify if ticket value matches
[Arguments] ${value}
Element Text Should Be ${some_locator} ${value}
那么您的测试将如下所示:
*** Test Cases ***
Ticket value is correct
[Documentation] OK: test test test
[Tags] Add to basket
Go to some URL
${ticket value}= Get ticket value
Navigate to product details page
Verify if ticket value matches ${ticket value}
我将所有参数名称设为不同,以强调它们不必完全相同 - 但如果需要,您可以将它们全部设为相同。
例如,我们有:
Get ticket value
Wait Until Element is Visible ${ticketDescription}
${ticketDescValue}= Execute Javascript return window.document.querySelector('p[class*="ticket-description"]').innerHTML.toString()
Verify if ticket value matches
Element Text Should Be ${some_locator} ${ticketDescValue}
其中,${ticketDescValue} 是预期的文本
测试用例示例:
*** Test Cases ***
Ticket value is correct
[Documentation] OK: test test test
[Tags] Add to basket
Go to some URL
Get ticket value
Navigate to product details page
Verify if ticket value matches
有什么方法可以在现有关键字之间共享变量吗? 在 Java 中,我可以为这种情况使用 getter 和 setter。 或向方法发送参数等...
如何使用Robot Framework实现?
您需要在赋值行之后使用类似于以下内容的内容将变量值设置为全局变量或套件变量:
Set Suite Variable ${ticketDescValue}
或者,您可以 return 来自第一个关键字的变量并将其作为参数传递给第二个关键字
更好的方法是将 Get ticket value
关键字修改为 return 参数,并将 Verify if ticket value matches
关键字修改为将门票值作为参数。这样你就不需要使用全局变量了。
Get ticket value
Wait Until Element is Visible ${ticketDescription}
${ticketDescValue}= Execute Javascript return window.document.querySelector('p[class*="ticket-description"]').innerHTML.toString()
[Return] ${ticketDescValue}
Verify if ticket value matches
[Arguments] ${value}
Element Text Should Be ${some_locator} ${value}
那么您的测试将如下所示:
*** Test Cases ***
Ticket value is correct
[Documentation] OK: test test test
[Tags] Add to basket
Go to some URL
${ticket value}= Get ticket value
Navigate to product details page
Verify if ticket value matches ${ticket value}
我将所有参数名称设为不同,以强调它们不必完全相同 - 但如果需要,您可以将它们全部设为相同。