我遇到这个问题,我需要返回由我创建的自定义关键字生成的值。
我有两个关键字Get Data
和Verify Signal R
,我正在Verify Signal R
关键字中生成一个值,该值调用获取数据功能,我需要验证是否收到某种消息这是代码
def get_data(notificaition):
print("Notification Recived: ", notificaition)
return notificaition
def verify_signal_r():
print(connection)
presenceservice1.client.on('StaffPresenceNotified', get_data)
connection.wait(15)
return presenceservice1
然后是我的关键字
*** Variables ***
${Notification}
*** Keywords ***
Verify Notification Was Displayed
get connection
Doctor Has Entered The Room
verify signal r
get data ${Notification}
然后是我的日志
如您所见,我正在验证Verify Singal R关键字中的消息,但获取数据为空,如何从python方法/关键字返回值?
EDIT 我正在Verify Signal R
内打印消息,但是当我尝试仅调用get data
时就会打印出消息您可以在日志中看到一个空字段那是因为get data
使用了Verify Signal R
的生成值,并且如果我只是按预期将get data方法调用为空,那么我将尝试验证get data不为空,我从服务器收到一条消息。
希望更清晰
答案 0 :(得分:0)
您需要使用Log
关键字在日志中打印值。
http://robotframework.org/robotframework/latest/libraries/BuiltIn.html#Log
答案 1 :(得分:0)
我可能很难理解您的问题,因为我看不到任何奇怪的行为。我将从头开始。
get data
不显示任何内容,因为${Notification}
变量从一开始就为空,并且从未被修改。verify signal r
的情况下您拥有Notification received: {....}
,因为presenceservice1.client.on('StaffPresenceNotified', get_data)
调用了get_data
并带有一些参数答案 2 :(得分:0)
我通过创建另一种方法并使用global
传递数据来解决了此问题
def get_data(self, notification):
global var2
var2 = notification
print("Message Received From Client!")
def print_data(self):
print(var2)
答案 3 :(得分:0)
我不确定您是否要这样做。 只需在关键字前面添加 $ {data} = (可以选择是否使用'='都可以)
*** Keywords ***
Verify Notification Was Displayed
get connection
Doctor Has Entered The Room
verify signal r
${data}= get data ${Notification}
Log ${data}