Robotframework 如何避免在从";调用关键字时出现TypeError;运行关键字If";(机器人框架)
我在.py文件中创建的另一个字典中有一个嵌套字典。 当我这样称呼它的时候Robotframework 如何避免在从";调用关键字时出现TypeError;运行关键字If";(机器人框架),robotframework,Robotframework,我在.py文件中创建的另一个字典中有一个嵌套字典。 当我这样称呼它的时候 FOR ${key} IN @{keys} I fill "${key}" tab on Applicant page with "${data}[${key}]" data END 它工作得非常好。但是,如果我用这个电话 Run Keyword If $ADD_TO_BANKING_KEY in $keys I add Applicant
FOR ${key} IN @{keys}
I fill "${key}" tab on Applicant page with "${data}[${key}]" data
END
它工作得非常好。但是,如果我用这个电话
Run Keyword If $ADD_TO_BANKING_KEY in $keys I add Applicant to Banking with "${data}[${ADD_TO_BANKING_KEY}]" data
我总是会遇到一个错误“TypeError:预期参数1是字典或类似字典的,改为get string。”当我试图在“I add applicator to Banking with…”函数中将该参数用作字典时
“${data}[${ADD_TO_BANKING_KEY}]”示例:{'Member No.:'DO_NOT_CHECK','Benefit':'Regular','Reason Opened':'radio'}
我如何解决这个问题并以正确的方式进行?
谢谢大家!
更新:
第一个功能:
I add Applicant to Banking with "${data}" data
Log To Console \#\#\# I add Applicant to Banking with "${data}" data
I fill "Add To Banking" tab on Applicant page with "${data}" data
I input "${value}" to "${elementName}" element in "${tabName}" tab on "${pageName}" page
[Documentation] Input ``value`` to ``elementName`` element in ``tabName`` tab on the ``pageName`` page
Log To Console \#\#\# I input "${value}" to"${elementName}" element in "${tabName}" tab on "${pageName}" page
${tempLocator}= Get Locator From DOM ${RETAIL_DOM} ${pageName} ${elementName} ${tabName}
SeleniumExtendedResource.Input Value ${tempLocator} ${value}
第二个功能:
I fill "${tabName}" tab on Applicant page with "${data}" data
Log To Console \#\#\# I fill "${tabName}" tab on Applicant page with "${data}" data
@{keys}= Get Dictionary Keys ${data}
FOR ${key} IN @{keys}
I input "${data['${key}']}" to "${key}" element in "${tabName}" tab on "Applicants" page
END
有一个地方是失败的
@{keys}= Get Dictionary Keys ${data}
第三项职能:
I add Applicant to Banking with "${data}" data
Log To Console \#\#\# I add Applicant to Banking with "${data}" data
I fill "Add To Banking" tab on Applicant page with "${data}" data
I input "${value}" to "${elementName}" element in "${tabName}" tab on "${pageName}" page
[Documentation] Input ``value`` to ``elementName`` element in ``tabName`` tab on the ``pageName`` page
Log To Console \#\#\# I input "${value}" to"${elementName}" element in "${tabName}" tab on "${pageName}" page
${tempLocator}= Get Locator From DOM ${RETAIL_DOM} ${pageName} ${elementName} ${tabName}
SeleniumExtendedResource.Input Value ${tempLocator} ${value}
我认为您还需要向我们显示发生类型错误的关键字,因为这似乎就是问题所在。我已经附上了代码。为什么我最初没有这样做,是因为当我在没有“Run关键字If”的情况下调用这个函数时,它可以正常工作。${data}[${ADD_TO_BANKING_KEY}]:{'Member No.:'do_not_CHECK','Benefit':'Regular','Reason Opened':'radio'}可能这被视为字符串检查${data}变量是否为标准的robot框架字典string@Dev这是一个Python字典。如果我调用“我将申请人添加到银行”,并使用“不”Run关键字If“它被视为字典,而不是字符串。我认为您还需要向我们显示发生类型错误的关键字,因为这似乎是问题所在。我已附上代码。为什么我最初没有这样做,是因为当我在没有“Run关键字If”的情况下调用这个函数时,它可以正常工作。${data}[${ADD_TO_BANKING_KEY}]:{'Member No.:'do_not_CHECK','Benefit':'Regular','Reason Opened':'radio'}可能这被视为字符串检查${data}变量是否为标准的robot框架字典string@Dev这是一个Python字典。如果我调用“我将申请人添加到银行”,而不调用“Run关键字If”,它将被视为字典,而不是字符串。