2017-12-08 5 views
1

私はSelenium WebDriverをPythonでPycharmに使用しています。ここでは2つのテスト機能を持つクラスを使用しています。Selenium WebDriverで "Python"を使用しています:オブジェクトに属性がありません

class goodsweb(unittest.TestCase): 

    def setUp(self): 
     driverlocation ="/Users/new/Documents/Learning/Drivers/selenium-2.53.1/py/selenium/webdriver/chromedriver" 
     os.environ["webdriver.chrome.driver"] = driverlocation 
     self.driver = webdriver.Chrome(driverlocation) 

    def test_Test1(self): 
     self.EmailEntry = input("Please Enter Email Address: ") 
     self.EmailAddress.send_keys(self.EmailEntry) 
     self.Password.clear() 
     self.password='12345678' 
     self.Password.send_keys(self.password) 

    def test_Test2(self): 
     self.LoginEmail = driver.find_element_by_xpath("//*[@id='sign_form-default']//div[1]/input[@type='email']") 
     self.LoginEmail.clear() 
     self.LoginEmail.click() 
     self.LoginEmail.send_keys(self.EmailEntry) 

     self.LoginPassword = driver.find_element_by_xpath("//*[@id='sign_form-default']//div[1]/input[@type='password']") 
     self.LoginPassword.clear() 
     self.LoginPassword.click() 
     self.LoginPassword.send_keys(self.password) 

今、私が欲しいものは、私は、コードを実行しているときはいつでもtest_Test2

EmailEntrytest_Test1Passwordのアクセスを取得することです、私はこのエラーが生じています:

AttributeError: 'goodsweb' object has no attribute 'EmailEntry'

+0

常に完全なエラーメッセージ(トレースバック)を置きます。その他の有益な情報があります – furas

+0

あなたのEmailEntryフィールドはどこですか? goodswebクラスではアクセスできません。 このクラスで宣言するか、静的として定義します。 – Hiten

+0

@furas非常に長いコードだったので、この問題に必要な主要事項を入力しました。 – TeSter

答えて

1

where is your EmailEntry field ?

それをgoodswebクラスではアクセスできません。このクラスを宣言するか、他のクラスで使用できるように静的として定義します。

他のクラスの1つのフィールドを使用する場合、または機能する場合は、フィールドを静的フィールドとして定義する必要があります。

機能については、概念は同じです。あなたは、Python用

public static void main(){ 
    // your logic 
} 

のような静的としての機能を定義したことができます::

class MyClass(object): 
    def the_static_method(x): 
     print x 
    the_static_method = staticmethod(the_static_method) 

MyClass.the_static_method(2) # outputs 2 
+0

提案とそのPython..not Javaありがとう。 – TeSter

関連する問題