我在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()
答案 0 :(得分:0)
你有的任何值 - 无论你是将它们作为函数参数,还是通过调用函数接收它们,或者只是动态定义它们 - 你可以作为参数传递给任何其他函数。
因此,如果您想通过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)
你想要的更多吗?
答案 1 :(得分:0)
您可以创建一个新功能来运行所有测试。
def run_tests(username, password):
testLogin(username,password)
testRegister(username, password)
您需要修改testRegister,以便它接受用户名和密码参数。
然后你可以用run_tests('admin','letmein')
开始你的脚本