如何使用变量执行用户定义的python方法,从Excel工作表中读取

时间:2013-04-16 11:29:48

标签: python selenium python-2.7 selenium-webdriver xlrd

我为 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'

非常感谢任何帮助。

2 个答案:

答案 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) 希望这有助于其他人:)