例如,我们有:
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实现它?
答案 0 :(得分:1)
您需要在分配行后使用类似下面的内容将变量值设置为Global或suite变量:
Set Suite Variable ${ticketDescValue}
或者,您可以从第一个关键字返回变量,并将其作为参数传递给第二个关键字
答案 1 :(得分:0)
更好的方法是修改Get ticket value
关键字以返回参数,并使用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}
我使所有参数名称都不同,以强调它们不必完全相同 - 但如果你愿意,你可以使它们完全相同。