文章目录
- 2.2.1 driver包下面的driver代码
- 2.2.2 Webdriver包下面的test_case包下面的modle下面的funcation代码
- 2.2.3 Webdriver包下面的test_case包下面的modle下面的myutil代码
1.任务目标
上一小结我们了解了PO设计模式,我们这一小结学习一下如何使用PO设计模式,并熟练掌握PO设计模式的原理以及用法.
2. 任务实操
2.1任务目录
2.2任务代码
2.2.1 driver包下面的driver代码
from selenium import webdriver def brower(): driver = webdriver.Chrome() return driver #在这里面我们封装开启浏览器的方法
2.2.2 Webdriver包下面的test_case包下面的modle下面的funcation代码
from email.mime.text import MIMEText from email.header import Header import smtplib import os import csv #封装截图方法 def instr_img(driver, filename): func_dir = os.path.dirname(__file__) base_dir = os.path.dirname(func_dir) base_dir = str(base_dir) base_dir = base_dir.replace("\\", '/') base = base_dir.split("/Webdriver")[0] filepath = base + "/Webdriver/test_report/sucsses/" + filename driver.get_screenshot_as_file(filepath) #封装发送邮箱的方法 def listed(report_dir): lists = os.listdir(report_dir) lists.sort(key=lambda fn: os.path.getatime(report_dir + "\\" + fn)) print("new report is:" + lists[-1]) file = os.path.join(report_dir, lists[-1]) print(file) return file def send_mail(listed): f = open(listed, "rb") cont_mail = f.read() f.close() smtpserver='smtp.163.com' #发送邮箱用户名密码 user='XXXXX@163.com' #填入自己的邮箱账号 #密码为授权码 password='…'#填入自己的授权码,注意非邮件密码 #发送和接收邮箱 sender='XXXXXA@163.com'#填入发送邮箱的账号 receive='XXXXXB@126.com'#填入接收邮箱的账号 #发送邮件主题和内容 subject='Selenium 自动化测试报告' content='<html><h1 style="color:red">测试报告</h1></html>' #HTML邮件正文 msg=MIMEText(content,'html','utf-8') msg['Subject']=Header(subject,'utf-8') msg['From']='XXXXXA@163.com' #填入发送邮箱的账号 msg['To'] = 'XXXXXB@126.com' #填入接收邮箱的账号 #SSL协议端口号要使用465 smtp = smtplib.SMTP_SSL(smtpserver, 465) #HELO 向服务器标识用户身份 smtp.helo(smtpserver) #服务器返回结果确认 smtp.ehlo(smtpserver) #登录邮箱服务器用户名和密码 smtp.login(user,password) print("开始发送邮件...") smtp.sendmail(sender,receive,msg.as_string()) smtp.quit() print("邮件发送完成!") #封装读取csv文件的方法 def get_csv_file(line): with open(r"E:\py练习\py_day17\Webdriver\test_data\rest.csv") as f: render = csv.reader(f) for index, row in enumerate(render, 1): if index == line: return row if __name__ == '__main__': data = get_csv_file(3) for row in data: print(row) #在这里面主要封装一些截图方法,读取csv文件的方法,发送邮箱的方法。
2.2.3 Webdriver包下面的test_case包下面的modle下面的myutil代码
#这里面封装一些打开关闭浏览器的方法 import unittest from driver.driver import * class strEnd(unittest.TestCase): def setUp(self): self.driver = brower() self.driver.maximize_window() self.driver.implicitly_wait(3) def tearDown(self): self.driver.quit()
3.小结
未完,下一小节更新