【问题标题】:evaluating a variable as a method name in python在python中将变量评估为方法名称
【发布时间】:2012-03-13 12:57:37
【问题描述】:

我正在使用 Selenium 2 和 Webdriver。我想将我想要的环境作为一组测试数据的一部分传递。我的代码如下所示:

    capability = webdriver.DesiredCapabilities.FIREFOX

并且工作正常。但我想从一个变量中传递“FIREFOX”,有点像这样:

    TestParameters['Environment']="FIREFOX"
    capability = webdriver.DesiredCapabilities.TestParameters['Environment']

但我得到了这个错误

AttributeError: type object 'DesiredCapabilities' has no attribute 'TestParameters'

如何将变量内容评估为方法名称?

【问题讨论】:

标签: python selenium webdriver


【解决方案1】:

您的代码尝试通过变量 name 而不是变量 value 访问属性:

capability = webdriver.DesiredCapabilities.TestParameters['Environment']

正如错误消息所说,这将评估webdriver.DesiredCapabilitesTestParameters 属性。它没有。

你想要的是评估名称为TestParameters['Environment']值的属性:

capabilityAttributeName = TestParameters['Environment']
capability = getattr(webdriver.DesiredCapabilities, capabilityAttributeName)

【讨论】:

  • 正是我需要的。我知道必须有一些简单的特殊酱汁才能做到这一点。
猜你喜欢
  • 1970-01-01
  • 2016-07-20
  • 2017-06-12
  • 2018-11-27
  • 1970-01-01
  • 2022-10-05
  • 2010-09-28
  • 2019-07-09
  • 1970-01-01
相关资源
最近更新 更多