Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中将变量作为方法名求值_Python_Selenium_Webdriver - Fatal编程技术网

在python中将变量作为方法名求值

在python中将变量作为方法名求值,python,selenium,webdriver,Python,Selenium,Webdriver,我正在将Selenium 2与Webdriver一起使用。我希望作为一组测试数据的一部分通过我想要的环境。我的代码如下所示: capability = webdriver.DesiredCapabilities.FIREFOX 并且工作正常。但是我想从一个变量传入“FIREFOX”,有点像这样: TestParameters['Environment']="FIREFOX" capability = webdriver.DesiredCapabilities.TestP

我正在将Selenium 2与Webdriver一起使用。我希望作为一组测试数据的一部分通过我想要的环境。我的代码如下所示:

    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)