2012-03-13 5 views
0

WebdriverでSelenium 2を使用しています。私は、一連のテストデータの一部として私の望む環境を渡したいと思います。私のコードは次のようになります:Pythonでメソッド名として変数を評価する

capability = webdriver.DesiredCapabilities.FIREFOX 

正しく動作します。しかし、私は一種の、このように、変数からの「FIREFOXを」合格したいと思います:

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

しかし、私はのように変数の内容を評価するために何ができる

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

このエラーが出ますメソッド名?エラーメッセージが言うように、これはwebdriver.DesiredCapabilitesTestParameters属性を評価

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

+0

が重複する可能性http://stackoverflow.com/questions/1855558:あなたが欲しい

は、その名前TestParameters['Environment']の値である属性を評価することです/ call-class-method-from-python) – jtbandes

+0

実際には...これはより密接なものです:http://stackoverflow.com/questions/3061/calling-a-function-from-a-string -with-the-functions-in-python – jtbandes

答えて

2

あなたのコードは、変数名の代わりに、変数によって属性にアクセスしようとします。それは持っていない。

capabilityAttributeName = TestParameters['Environment'] 
capability = getattr(webdriver.DesiredCapabilities, capabilityAttributeName) 
[Pythonで変数からコールクラスメソッド](の
+0

まさに私が必要としたもの。私は、その仕事をするために特別なソースのいくつかの単純なビットがなければならないことを知っていた。 –

関連する問題