我为 ClickLink , TypeInTextBox 等构建了可重用的框架库,它位于不同的python模块中。
当我在主要类ClickLink('CP_SignIn_Link')
中直接使用这些方法时,它可以正常工作。
但是当我尝试从excel中读取它并使用下面的相同内容时,我收到以下错误:
Keyword(wd_handle,Arguments)
print Keyword = ClickLink
print Arguments = 'CP_SignIn_Link'
Keyword(wd_handle,Arguments,Value)
TypeError: 'unicode' object is not callable
Sample TC Excel Document:
======================
User_Keyword | Keyword_Arguments | Value
----------------------------------------------------------------------------------
ClickLink | 'CP_SignIn_Link' |
TypeInTextBox |'CP_EmailAddress_TextBox' |'ABC@D.COM'
TypeInTextBox |'CP_Password_TextBox' |'test'
非常感谢任何帮助。
答案 0 :(得分:0)
我强烈相信你将“关键字”作为一个字符串, 但你试图把它称为功能。 例如:
k = os.system
K( 'PWD')
/家/测试/开尔文/ pythonall
0
k ='os.system'
K( 'PWD')
追溯(最近的呼叫最后):
文件“”,第1行,在中 TypeError:'str'对象不可调用
此处ClickLink将作为字符串
答案 1 :(得分:0)
我尝试使用globals()关键字,它有效:)
其中User_Keyword变量将计算为与包中方法名称等效的字符串。
实施例:
def ExecuteKeyword(driver, User_keyword, Argument) # User_keyword = ClickLink , Argument = SignInLink
function = globals()[User_Keyword]
function(driver,Arguments) # Equivalent to ClickLink(driver,SingnInLink)
希望这有助于其他人:)