首页 > 编程语言 > 详细

OP模型下的Python+selenium自动化

时间:2019-09-02 23:14:53      阅读:123      评论:0      收藏:0      [点我收藏+]

读取配置文件

 1 import configparser
 2 
 3 class ReadIni():
 4 
 5     def __init__(self,file_name=None,node=None):
 6         if file_name == None:
 7             file_name =C:\\Users\\mi\\Desktop\\Seleniumpython_pycharm\\imooc_seleniumyttt\\config\\LocalElement.ini
 8         if node == None:
 9             self.node = "RegisterElement"
10         else:
11             self.node = node
12         self.cf = self.load_ini(file_name)
13 
14     def load_ini(self,file_name):
15         cf = configparser.ConfigParser()
16         cf.read(file_name)
17         return cf
18 
19     def get_value(self,key):
20         data = self.cf.get(self.node, key)
21         return data
22 # 获取value的值
23 if __name__ == __main__:
24     read_init = ReadIni()
25     print(read_init.get_value(user_name))
26 
27 
28 # cf.read(r"C:\Users\mi\Desktop\Seleniumpython_pycharm\config\LocalElement.ini")
29 # cf.get(‘RegisterElement‘,‘user_email‘)

 

封装查找元素方法

 1 from imooc_selenium.util.read_ini import ReadIni
 2 
 3 
 4 class FindElement():
 5 
 6     def __init__(self,driver):
 7         self.driver = driver
 8 
 9     def get_element(self,key):
10         read_int = ReadIni()
11         data = read_int.get_value(key)
12         by = data.split(>)[0]
13         value = data.split(>)[1]
14         try:
15             if by == id:
16                 return self.driver.find_element_by_id(value)
17             elif by == name:
18                 return self.driver.find_element_by_name(value)
19             elif by == className:
20                 return self.driver.find_element_by_class_name(value)
21             else:
22                 return self.driver.find_element_by_xpath(value)
23         except:
24             return None

 

 

封装页面基本元素

 1 from PO.base.find_element import FindElement
 2 
 3 
 4 class RegisterPage():
 5 
 6     def __init__(self,driver):
 7         self.fd = FindElement(driver)
 8 
 9     # 获取邮箱元素
10     def get_email_element(self):
11         return self.fd.get_element("user_email")
12 
13     def get_username_element(self):
14         return self.fd.get_element("user_name")
15 
16     def get_password_element(self):
17         return self.fd.get_element("password")
18 
19     def get_code_element(self):
20         return self.fd.get_element("code_text")
21 
22     def get_button_element(self):
23         return self.fd.get_element("register_button")
24 
25     def get_email_error_element(self):
26         return self.fd.get_element("user_email_error")
27 
28     def get_name_error_element(self):
29         return self.fd.get_element("user_name_error")
30 
31     def get_password_error_element(self):
32         return self.fd.get_element("password_error")
33 
34     def get_code_error_element(self):
35         return self.fd.get_element("code_text_error")

 

 

封装对一个页面元素的单个操作

 1 from PO.page.register_page import RegisterPage
 2 
 3 
 4 class RegisterHandle():
 5 
 6     def __init__(self,driver):
 7         self.register_p = RegisterPage(driver)
 8 
 9     # 输入邮箱
10     def send_user_email(self,email):
11         self.register_p.get_email_element().send_keys(email)
12     # 输入用户名
13     def send_user_name(self,username):
14         self.register_p.get_username_element().send_keys(username)
15 
16     # 输入密码
17     def send_user_password(self,password):
18         self.register_p.get_password_element().send_keys(password)
19 
20     # 输入验证码
21     def send_user_code(self,code):
22         self.register_p.get_code_element().send_keys(code)
23 
24     # 获取文字信息
25     def get_user_text(self,info,user_info):
26         if info == email_error:
27             text = self.register_p.get_email_error_element().get_attribute(value)
28         elif info == name_error:
29             text = self.register_p.get_name_error_element().get_attribute(value)
30         elif info == password_error:
31             text = self.register_p.get_password_element().get_attribute(value)
32         else:
33             text = self.register_p.get_code_error_element().get_attribute(value)
34         return text
35 
36     # 点击注册按钮
37     def click_register_button(self):
38         self.register_p.get_button_element().click()
39 
40     # 获取注册按钮文字
41     def get_register_text(self):
42         return self.register_p.get_button_element().text

 

 

封装对一个页面元素的多个操作

 1 from PO.handle.register_handle import RegisterHandle
 2 
 3 
 4 
 5 class RegisterBusiness():
 6 
 7 
 8     def __init__(self,driver):
 9         self.register_h  = RegisterHandle(driver)
10     # 执行操作
11 
12     def user_base(self,email,name,password,code):
13         self.register_h.send_user_email(email)
14         self.register_h.send_user_name(name)
15         self.register_h.send_user_password(password)
16         self.register_h.send_user_code(code)
17         self.register_h.click_register_button()
18 
19     def register_success(self):
20         if self.register_h.get_register_text() == None:
21             return True
22         else:
23             return False
24 
25 
26     def login_email_error(self,email,name,password,code):
27         self.user_base(email,name,password,code)
28         if self.register_h.get_user_text(email_error,"请输入有效的电子邮件地址")==None:
29             print("邮箱检验不成功")
30             return True
31         else:
32             return False
33 
34     def login_name_error(self,email,name,password,code):
35         self.user_base(email,name,password,code)
36         if self.register_h.get_user_text(user_name_error,"字符长度必须大于等于4,一个中文字算2个字符")==None:
37             print("用户名检验不成功")
38             return True
39         else:
40             return False
41 
42     # 密码错误
43     def login_password_error(self,email,name,password,code):
44         self.user_base(email,name,password,code)
45         if self.register_h.get_user_text(password_error,"最少需要输入 5 个字符")==None:
46             print("密码检验不成功")
47             return True
48         else:
49             return False
50 
51     # 验证码错误
52     def login_code_error(self, email, name, password, code):
53         self.user_base(email, name, password, code)
54         if self.register_h.get_user_text(code_text_error, "验证码错误") == None:
55             print("验证码检验不成功")
56             return True
57         else:
58             return False

 

 

封装自动化测试用例

 1 from PO.business.register_business import RegisterBusiness
 2 from selenium import webdriver
 3 
 4 class FirstCase():
 5     def __init__(self):
 6         driver = webdriver.Chrome()
 7         driver.get(http://www.5itest.cn/register)
 8         self.login = RegisterBusiness(driver)
 9 
10     def test_login_email_error(self):
11         email_error = self.login.login_email_error(34,user111,1111111,test1)
12         if email_error == True:
13             print("注册成功了,此条case执行失败")
14 
15     def test_login_username_error(self):
16         name_error = self.login.login_email_error(34,user111,1111111,test1)
17         if name_error == True:
18             print("注册成功了,此条case执行失败")
19 
20     def test_login_code_error(self):
21         code_error = self.login.login_email_error(34, user111, 1111111, test1)
22         if code_error == True:
23             print("注册成功了,此条case执行失败")
24 
25     def test_login_password_error(self):
26         password_error = self.login.login_email_error(34, user111, 1111111, test1)
27         if password_error == True:
28             print("注册成功了,此条case执行失败")
29 
30     def test_login_success(self):
31         success= self.login.user_base(34, user111, 1111111, test1)
32         if self.login.register_success() == True:
33             print("注册成功")
34 
35 def main():
36     fisrt = FirstCase()
37     fisrt.test_login_code_error()
38     fisrt.test_login_email_error()
39     fisrt.test_login_password_error()
40     fisrt.test_login_username_error()
41     # fisrt.test_login_success()
42 
43 if __name__ == __main__:
44     main()

 

OP模型下的Python+selenium自动化

原文:https://www.cnblogs.com/zsjlovewm/p/11449148.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!