在python中将变量作为方法名求值
我正在将Selenium 2与Webdriver一起使用。我希望作为一组测试数据的一部分通过我想要的环境。我的代码如下所示:在python中将变量作为方法名求值,python,selenium,webdriver,Python,Selenium,Webdriver,我正在将Selenium 2与Webdriver一起使用。我希望作为一组测试数据的一部分通过我想要的环境。我的代码如下所示: capability = webdriver.DesiredCapabilities.FIREFOX 并且工作正常。但是我想从一个变量传入“FIREFOX”,有点像这样: TestParameters['Environment']="FIREFOX" capability = webdriver.DesiredCapabilities.TestP
capability = webdriver.DesiredCapabilities.FIREFOX
并且工作正常。但是我想从一个变量传入“FIREFOX”,有点像这样:
TestParameters['Environment']="FIREFOX"
capability = webdriver.DesiredCapabilities.TestParameters['Environment']
但是我得到了这个错误
AttributeError: type object 'DesiredCapabilities' has no attribute 'TestParameters'
如何将变量内容计算为方法名?您的代码尝试通过变量名而不是变量值访问属性: 正如错误消息所说,这将评估
webdriver.DesiredCapabilites
的TestParameters
属性。它没有
您需要计算的是名称为TestParameters['Environment']
值的属性:
capabilityAttributeName = TestParameters['Environment']
capability = getattr(webdriver.DesiredCapabilities, capabilityAttributeName)
可能的副本实际上。。。这是一个更接近的骗局:正是我所需要的。我知道必须有一些简单的特殊调味汁才能起作用。
capabilityAttributeName = TestParameters['Environment']
capability = getattr(webdriver.DesiredCapabilities, capabilityAttributeName)