2012-12-07 6 views
0

Python for Selenium 웹 테스트에 테스트 스크립트를 작성하고 있습니다.Python에서 함수에 변수 전달하기

어떻게 파이썬 함수를 통해 매개 변수를 전달하여 나중에 함수를 호출합니까? 먼저 로그인 테스트 기능이 있습니다. 그런 다음 새로운 사용자 등록 기능이 있습니다. 나는 testRegister() 함수 내에서 호출하는 testLogin() 함수에 등록 함수에서 사용하는 사용자 이름과 암호를 전달하려고합니다.

이 내 파이썬 코드입니다 : 당신이 주변에-여부를 함수 인수로를 가지고, 또는 함수를 호출하여받은, 또는 단지 그들을 정의

userName = "admin" 
password = "admin" 

#pass username and password variables to this function 
def testLogin(userName,password): 
    browser = webdriver.Firefox() 
    browser.get("http://url/login") 

    element = browser.find_element_by_name("userName") 
    element.send_keys(userName) 

    element = browser.find_element_by_name("userPassword") 
    element.send_keys(password) 

    element.send_keys(Keys.RETURN) 

    browser.close() 

# test registration 
def testRegister(): 
    browser = webdriver.Firefox() 
    browser.get("http://url/register") 

    #new username variable 
    newUserName = "test" 
    element = browser.find_element_by_name("regUser") 
    element.send_keys(newUserName) 

    #new password variable 
    newUserPassword = "test" 
    element = browser.find_element_by_name("regPassword") 
    element.send_keys(newUserPassword) 

    # 
    #now test if user is registered, I want to call testLogin with the test user name and pw. 
    testLogin(newUserName,newUserPassword) 

    browser.close() 
+0

가 오류 또는 다른 결과를 얻고있다하여 스크립트를 시작할 수 있나요? 특별한 기능을 수행하지 않고도 함수에 정의 된 변수를 다른 함수에 전달할 수 있습니다. – oathead

+0

testregister가 호출되지 않았기 때문에 testuser가 생성되지 않았습니다. testregister()를 실행 한 다음 testlogin ("test", "test")을 수행해야합니다. – arynaq

답변

0

모든 값 플라이 당신은 통과 할 수 다른 함수에 대한 인수. 당신이 testLogin와 함께 사용할 수 있도록 testRegister을 통해 일부 값을 전달하려면

그래서, 그냥 이렇게 : 더 당신이 원하는 무언가가

# test registration 
def testRegister(userName, password): 
    browser = webdriver.Firefox() 
    browser.get("http://url/register") 

    element = browser.find_element_by_name("regUser") 
    element.send_keys(userName) 

    element = browser.find_element_by_name("regPassword") 
    element.send_keys(password) 

있습니까?

0

새 기능을 만들어 모든 테스트를 실행할 수 있습니다.

def run_tests(username, password): 
    testLogin(username,password) 
    testRegister(username, password) 

사용자 이름과 암호 매개 변수를 허용하도록 testRegister를 수정해야합니다.

그럼 당신은 당신이 예상보다 run_tests ('관리자', 'letmein'과 ')