0

我用 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()
4

2 回答 2

0

你周围的任何值——无论是作为函数参数获取,还是通过调用函数接收它们,或者只是动态定义它们——你都可以作为参数传递给任何其他函数。

因此,如果您想传递一些值testRegister以使其与 with 一起使用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)

你还有什么想要的吗?

于 2012-12-07T23:06:07.403 回答
0

您可以创建一个新函数来运行所有测试。

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

您将需要修改 testRegister 以便它接受用户名和密码参数。

然后你可以用 run_tests('admin', 'letmein') 开始你的脚本

于 2012-12-08T01:34:49.470 回答