日志接口:log_module.py
import time import os class Loginfo(object): def __init__(self, mode='w'): #打开文件 path = os.path.dirname(os.path.abspath('.')) + '/mokuaihua/logs/' # 日志存储路径 filename = time.strftime('%Y-%m-%d_%H-%M-%S', time.localtime())+'.txt' self.log = open(path+filename,mode,encoding='utf-8') def log_write(self,msg): self.log.write(msg) def log_close(self): self.log.close() if __name__ == '__main__': log = Loginfo() log.log_write('test 测试') log.log_close()
用例增加验证信息:
from selenium import webdriver import time from selenium.webdriver.support.ui import WebDriverWait #从文件中导入数据 from userdata import get_webinfo,get_userinfo from log_module import Loginfo def waituntil_load(driver,times,func): return WebDriverWait(driver,times).until(func) def openBrower(): driver = webdriver.Chrome() return driver def openUrl(driver,url): driver.get(url) driver.maximize_window() def findElement(driver,arg):#参数是字点 # driver.find_element_by_xpath('/html/body/div[3]/div[2]/div[3]/div/div').click() #关闭弹窗 waituntil_load(driver, 15, lambda driver: driver.find_element_by_xpath('/html/body/div[3]/div[2]/div[3]/div/div')).click() if 'text_id' in arg.keys(): element_login = waituntil_load(driver,15,lambda driver:driver.find_element_by_link_text(arg['text_id'])) element_login.click() time.sleep(3) userEle = driver.find_element_by_id(arg['userid']) pwdEle = driver.find_element_by_id(arg['pwdid']) loginEle = driver.find_element_by_id(arg['loginid']) return userEle,pwdEle,loginEle def sendValues(eletuple,arg):#arg为登录数据,格式为字典 listkey = ['account','pwd'] i = 0 for key in listkey: eletuple[i].clear() eletuple[i].send_keys(arg[key]) i += 1 eletuple[-1].click() def checkResult(driver,i,arg,log): try: err = driver.find_element_by_id('login-form-tips') print('第%d个账号登录失败,账号信息是:%s, 提示信息为:%s'%(i+1,arg,err.text)) msg = '第%d个账号, %s:%s, error:%s'%(i+1,arg['account'],arg['pwd'],err.text) log.log_write(msg+'\n') result = False except: print('第%d个账号登陆成功,账号信息是:%s'%(i+1,arg)) msg = '第%d个账号, %s:%s, pass' % (i+1, arg['account'],arg['pwd']) log.log_write(msg+'\n') result = True return result def login_test(ele_dict,user_list): driver = openBrower() #初始化日志文件 log = Loginfo() openUrl(driver,ele_dict['url']) ele_tuple = findElement(driver,ele_dict) for i in range(len(user_list)): sendValues(ele_tuple,user_list[i]) time.sleep(3) result = checkResult(driver,i,user_list[i],log) if result == True: driver.find_element_by_link_text('退出').click()#点击退出按钮 ele_tuple = findElement(driver, ele_dict)#重新找到相应元素,点击登录 time.sleep(3) log.log_close() if __name__ == '__main__': ''' ele_dict = {'url': 'http://www.maiziedu.com/', 'text_id': '登录', 'userid': 'id_account_l', 'pwdid': 'id_password_l', 'loginid': 'login_btn', #'account' : '18665933615', #'pwd' : 'abc123456', #'errorinfo' : '账号或者密码错误,请重新输入' } user_list = [{'account' : '18665933615','pwd' : 'abc123456'}, {'account': '123', 'pwd': 'abc123456'}, {'account' : '[email protected]','pwd' : 'z5'}]''' ele_dict = get_webinfo() #print(ele_dict) user_list = get_userinfo() #print(user_list) login_test(ele_dict,user_list)pycharm输出为:第1个账号登录失败,账号信息是:{'account': '18665933615', 'pwd': 'abc123456'}, 提示信息为:账号或者密码错误,请重新输入
第2个账号登录失败,账号信息是:{'account': '123', 'pwd': 'abc123456'}, 提示信息为:该账号格式不正确
第3个账号登陆成功,账号信息是:{'account': '[email protected]', 'pwd': 'z15'}
第4个账号登录失败,账号信息是:{'account': '[email protected]', 'pwd': '123456'}, 提示信息为:账号或者密码错误,请重新输入
第5个账号登录失败,账号信息是:{'account': '', 'pwd': 'abc123456'}, 提示信息为:账号不能为空
第6个账号登录失败,账号信息是:{'account': '18665933615', 'pwd': ''}, 提示信息为:密码不能为空
日志文件输出为:
第1个账号, 18665933615:abc123456, error:账号或者密码错误,请重新输入 第2个账号, 123:abc123456, error:该账号格式不正确 第3个账号, [email protected]:z5, pass 第4个账号, [email protected]:123456, error:账号或者密码错误,请重新输入 第5个账号, :abc123456, error:账号不能为空 第6个账号, 18665933615:, error:密码不能为空