参数化登录QQ空间实例
通过参数化的方式,登录QQ空间
实例源码:
# coding:utf-8 from selenium import webdriver import unittest import time class QZone(unittest.TestCase): """登录QQ空间""" def setUp(self): self.driver = webdriver.Firefox() base_url = "https://i.qq.com" self.driver.get(base_url) self.driver.implicitly_wait(30) def login_qzone(self,user,password): """登录方法,账号密码参数化""" # self.driver.get(self.url + "/".format(self)) self.driver.switch_to_frame('login_frame') self.driver.find_element_by_id('switcher_plogin').click() self.driver.find_element_by_id('u').clear() self.driver.find_element_by_id('u').send_keys(user) self.driver.find_element_by_id('p').clear() self.driver.find_element_by_id("p").send_keys(password) self.driver.find_element_by_id("login_button").click() time.sleep(3) def is_login_sucess(self): """判断是否登录成功""" try: result_text = self.driver.find_element_by_xpath(".//*[@id='headContainer']/div[2]/div[1]/span[1]").text print result_text return True except: return False def test_01(self): """登录case01""" self.login_qzone("1222222", "*********") #运行时输入对应的账号 result = self.is_login_sucess() self.assertTrue(result) def test_02(self): """登录case02""" self.login_qzone("00000000", "*********") # 运行时输入对应的账号 result = self.is_login_sucess() self.assertTrue(result) def tearDown(self): self.driver.quit() if __name__ == "__main__": unittest.main()
源码分析:
1、采用单元测试框架unittest
2、setup()、steardown()函数是unittest框架中的起始和结束函数
3、login_qzone()函数是登录函数,用于登录QQ空间,登录时,账号密码采用了参数化的方式
4、is_login_success()函数是用于判断用户是否登录成功,若登录成功,返回登录的QQ空间的用户名,并打印出来
5、test01()、test02(),是测试用例,在测试用例中,调用登录函数进行登录操作,用登录验证函数来判断登录是否成功
遇到的坑:
报错截图
开始一直报这个错,不晓得什么原因,研究了很久;最后发现,是test01()、test02()函数下面注释的原因,去掉注释前面的u就可以正常运行了
虽然问题解决了,但是不晓得什么原因,请知道原因的大神,帮忙解释一下哦