[英]Passing variables to functions in Python
我用Python編寫了用於Selenium Web測試的測試腳本。
如何通過Python函數傳遞參數以調用以后的函數? 我首先有一個登錄測試功能。 然后,我有了一個新的用戶注冊功能。 我試圖將我在注冊函數中使用的用戶名和密碼傳遞給在testLogin()
函數內部調用的testRegister()
函數。
這是我的python代碼:
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()
周圍的任何值-無論是將它們作為函數參數獲取,還是通過調用函數接收它們,或者只是即時定義它們-您都可以將其作為參數傳遞給任何其他函數。
因此,如果要通過testRegister
傳遞一些值以使其與testLogin
一起使用,請執行以下操作:
# 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)
還有其他想要的東西嗎?
您可以創建一個新功能來運行所有測試。
def run_tests(username, password):
testLogin(username,password)
testRegister(username, password)
您將需要修改testRegister,以便它接受用戶名和密碼參數。
然后,您可以使用run_tests('admin','letmein')啟動腳本
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.