2017-12-08 10 views
1

Pycharm에있는 Selenium WebDriver을 Python에서 사용하고 있습니다. 여기서는 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

에서 EmailEntry의 액세스 및 test_Test1Password를 얻을 수있다, 나는 데이 오류 :

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

+0

항상 넣어 전체 오류 메시지 (역 추적)를 들어

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

처럼 정적으로 기능을 정의 할 수 있습니다. 기타 유용한 정보가 있습니다 – furas

+0

EmailEntry 필드는 어디에 있습니까? goodsweb 클래스에서 액세스 할 수 없습니다. 이 클래스에서 선언하거나 정적으로 정의하십시오. – Hiten

+0

@furas 매우 긴 코드이므로이 문제에 필요한 주요 사항을 입력했습니다. – TeSter

답변

1

where is your EmailEntry field ?

그것을 goodsweb 클래스에서 액세스 할 수 없습니다. 이 클래스에서 선언하거나 다른 클래스에서 사용할 수 있도록 정적으로 정의하십시오.

다른 클래스에서 하나의 필드를 사용하거나 작동하려면 필드를 정적으로 정의해야합니다.

기능의 개념은 같습니다. 당신은 파이썬 ::

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

제안 및 그 파이썬 .. 자바에 감사드립니다. – TeSter