Reads the configuration file
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')
Find packaging element method
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
The basic elements of the package page
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")
Encapsulation of a single page element operation
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 # clicks the registration button 37 [ DEF click_register_button (Self): 38 is self.register_p.get_button_element () the Click (). 39 40 # acquired text registration button 41 is DEF get_register_text (Self): 42 is return self.register_p.get_button_element () text.
Package for a plurality of page elements operating
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 ( " Mailbox unsuccessful test " ) 30 return True 31 is the else : 32 return False 33 is 34 is DEF login_name_error (Self, In Email, name, password, code): 35 self.user_base (In Email, name, password, code) 36 IF self.register_h.get_user_text ( ' user_name_error ' , ' character length must be greater than or equal to 4, a two character text count " ) == None: 37 [ Print ( " user name unsuccessful test " ) 38 is return True 39 the else : 40 return False 41 is 42 is # wrong password 43 is DEF login_password_error (Self, In Email, name, password, code): 44 is self.user_base (In Email, name, password, code) 45 IF self.register_h.get_user_text ( ' password_error ' , " a minimum of five characters input " ) == None: 46 is Print ( " password unsuccessful test " ) 47 return True 48 the else : 49 return False 50 51 is # verification code error 52 is DEF login_code_error (Self, In Email, name, password, code): 53 is self.user_base (In Email, name, password, code) 54 is IF self.register_h.get_user_text ( ' code_text_error ' , " Verify error code " ) == None: 55 Print ( " code unsuccessful test " ) 56 return True 57 the else : 58 return False
Packaging automation test cases
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 is ' , ' user111 ' , ' 1111111 ' , ' test1 ' ) 12 is IF email_error == True: 13 is Print ( " successfully registered, the entry failed case " ) 14 15 DEF test_login_username_error (Self): 16 NAME_ERROR = Self. login.login_email_error ( ' 34 is ' , ' user111 ' , ' 1111111 ' , ' test1 ') 17 IF NAME_ERROR == True: 18 is Print ( " successfully registered, the entry failed case " ) . 19 20 is DEF test_login_code_error (Self): 21 is code_error = self.login.login_email_error ( ' 34 is ' , ' user111 ' , ' 1111111 ' , ' test1 ' ) 22 IF code_error == True: 23 Print ( " registration successful, this entry case failed " ) 24- 25 DEFtest_login_password_error (Self): 26 is password_error = self.login.login_email_error ( ' 34 is ' , ' user111 ' , ' 1111111 ' , ' test1 ' ) 27 IF password_error == True: 28 Print ( " successfully registered, the entry fails case " ) 29 30 DEF test_login_success (Self): 31 is Success = self.login.user_base ( ' 34 is ' , ' 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 ()