Selenium2+python自动化48-登录方法(参数化)

前言

登录这个场景在写用例的时候经常会有,我们可以把登录封装成一个方法,然后把账号和密码参数化,这样以后用的登录的时候,只需调用这个方法就行了

一、登录方法

1.把输入账号、输入密码、点击登录按钮三个步骤写成一个方法

2.然后把输入的账号和密码参数化

二、用例

1.下面的用例可以调用前面写的登录方法,这样不用每次都去走登录流程

2.判断是否登录成功,我这里是取的登录成功后的账户名

三、判断方法封装

1.如果用上面的方法去判断的话,有个缺陷,当登录不成功的时候,页面是不会跳转的,所以查找元素会报异常:

NoSuchElementException: Message: Unable to locate element: {"method":"id","selector":"lnk_current_user"}

2.这个时候就简单封装下判断方法:获取到账户名返回Ture;没有获取到返回False

四、优化后案例

1.优化后的登录案例如下,这样看起来更清楚了

五、参考代码

 1 # coding:utf-8
 2 from selenium import webdriver
 3 import unittest
 4 import time
 5 class Bolg(unittest.TestCase):
 6     u'''登录博客'''
 7     def setUp(self):
 8         self.driver = webdriver.Firefox()
 9         url = "https://passport.cnblogs.com/user/signin"
10         self.driver.get(url)
11         self.driver.implicitly_wait(30)
12 
13     def login(self, username, psw):
14         u'''这里写了一个登录的方法,账号和密码参数化'''
15         self.driver.find_element_by_id("input1").send_keys(username)
16         self.driver.find_element_by_id("input2").send_keys(psw)
17         self.driver.find_element_by_id("signin").click()
18         time.sleep(3)
19 
20     def is_login_sucess(self):
21         u'''判断是否获取到登录账户名称'''
22         try:
23             text = self.driver.find_element_by_id("lnk_current_user").text
24             print text
25             return True
26         except:
27             return False
28 
29     def test_01(self):
30         u'''登录案例参考:账号,密码自己设置'''
31         self.login(u"上海-悠悠", u"xxxx")  # 调用登录方法
32         # 判断结果
33         result = self.is_login_sucess()
34         self.assertTrue(result)
35 
36     def test_02(self):
37         u'''登录案例参考:账号,密码自己设置'''
38         self.login(u"上海-悠悠", u"xxxx")  # 调用登录方法
39         # 判断结果   # 交流QQ群:232607095
40         result = self.is_login_sucess()
41         self.assertTrue(result)
42 
43     # def test_01(self):
44     #     u'''登录案例参考:账号,密码自己设置'''
45     #     self.login(u"上海-悠悠", u"xxxx")  # 调用登录方法
46     #     # 获取登录后的账号名称
47     #     text = self.driver.find_element_by_id("lnk_current_user").text
48     #     print text
49     #     # 断言实际结果与期望结果一致
50     #     self.assertEqual(text, u"上海-悠悠")
51     #
52     # def test_02(self):
53     #     u'''登录案例参考:账号,密码自己设置'''
54     #     self.login(u"上海-悠悠", u"oooo")  # 调用登录方法
55     #     # 获取登录后的账号名称
56     #     text = self.driver.find_element_by_id("lnk_current_user").text
57     #     print text       # 交流QQ群:232607095
58     #     # 断言实际结果与期望结果一致
59     #     self.assertEqual(text, u"上海-悠悠")
60 
61     def tearDown(self):
62         self.driver.quit()
63 
64 if __name__ == "__main__":
65     unittest.main()

猜你喜欢

转载自www.cnblogs.com/jason89/p/9028812.html