0

我已经为ClickLinkTypeInTextBox等构建了可重用的框架库,它位于不同的 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'

任何帮助将非常感激。

4

2 回答 2

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) 希望这对其他人有帮助:)

于 2013-04-17T01:33:10.010 回答
0

我坚信您将“关键字”作为字符串获取,但您试图将其称为函数。例子 :

k = os.system
k('pwd')

/home/test/kelvin/pythonall
0

但是如果我们这样尝试:

k ='os.system'
k('pwd')
Traceback(最近一次调用最后一次):
文件“”,第 1 行,
类型错误:'str' 对象不可调用

这里 ClickLink 以字符串形式出现

于 2013-04-16T12:05:02.497 回答