簡體   English   中英

將變量傳遞給Python中的函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM