一、selenium使用unittest框架如下:

case下放置要执行的文件,文件名要以test开头
config可以添加一个py文件,文件内放置基本ip,如:
HOST=www.baidu.com
二、run.py代码如下:
from BeautifulReport import BeautifulReport
import unittest
import time
current = time.strftime('%Y-%m-%d-%H-%M-%S') # 生成时间,月份一定要小写,分钟一定要大写
report_name = current + '-report.html' # 生成测试报告文件名,参考上面框架中的report下的html报告名
test_suite = unittest.defaultTestLoader.discover('./case', pattern='test*py') # 执行case文件夹内所有以test开头的py文件,要执行的文件名命名一定要以test开头
runner = BeautifulReport(test_suite)
runner.report('selenium自动化测试', report_name, './report') # 生成的报告名
if __name__ == "__main__": # run.py执行入口,在run.py执行就可以执行case下所有的文件
unittest.main()
三、get_token.py文件写获取token的代码,并封装
from selenium import webdriver # 导入webdriver
from PIL import Image # 导入截图插件
import time
def get_driver(): # 封装打开chrome浏览器
driver = webdriver.Chrome()
return driver
def get_token(ob): # 封装get_token,通过账号密码验证码方式登录
driver = ob
driver.get('登录界面的url')
driver.maximize_window()
driver.find_element_by_xpath('账号输入框的xpath').send_keys('你的账号') # 点击账号输入框并输入账号
driver.find_element_by_xpath('密码输入框的xpath').send_keys('你的密码') # 点击密码输入框并输入密码
driver.save_screenshot('a.png') # 登录界面截图
element = driver.find_element_by_xpath('验证码xpath') # 找到验证码的xpath定位
left = element.location['x'] # 验证码图片左边的坐标
top = element.location['y'] # 验证码图片上面的坐标
right = left + element.size['width'] # 验证码图片右边的坐标
bottorm = top + element.size['height'] # 验证码图片底部的坐标
im = Image.open('a.png') # 打开之前截图的登录界面图片
im = im.crop((left, top, right, bottorm)) # 在登录界面图片根据验证码上下左右坐标定位到验证码图片
im.save('b.png') # 将验证码图片截图
code = input('请输入正确的验证码:')
driver.find_element_by_xpath('验证码输入框xpath').send_keys(code) # 点击输入框并输入验证码
driver.find_element_by_xpath('登录按钮xpath').click() # 点击登录按钮,即可登录
time.sleep(5)
'''获取token'''
token = driver.execute_script('return localStorage.getItem("token");') # 获取token
header = {"X-Access-Token": token}
return header
if __name__ == "__main__":
print(get_token())
四、case里的py执行用例文件如何编写
import unittest # 导入unittest
from time import sleep
from config.config import HOST # 导入config文件中的HOST
from tools.get_token import get_token
from tools.get_token import get_driver
import sys,os
sys.path.append(os.path.dirname(os.path.dirname(__file__)))
class Partment(unittest.TestCase): #定义测试类,继承unittest.TestCase
'''部门管理'''
# 测试之前初始化
@classmethod
def setUpClass(self):
self.driver = get_driver()
self.header = get_token(self.driver)
self.driver.get(HOST+'路径')
self.driver.implicitly_wait(15)
# 定义测试结束后的动作
@classmethod
def tearDownClass(self):
# 关闭浏览器,恢复测试数据等操作
sleep(2)
self.driver.quit()
def test_01_search_seccess(self):
'''第一条用例'''
pass
if __name__ == "__main__":
unittest.main()