1 初始化项目
1.1新建项目,创建目录结构
1.2安装依赖包
- 安装sekenium包
- 安装parameterized包
- 添加HTMLTestRunner
- 查看已安装的依赖包:点击File—Settings—Project webAutoTest—Project Interpreter
2 初始化代码(通过公用方法进行封装,减少子类代码)
2.1封装驱动工具类:对浏览器驱动对象经常使用到的操作封装成一个工具类,方便代码的调用。一般包含1获取浏览器驱动对象并完成一个初始化的操作和 2关闭浏览器。
2.1.1具体步骤
from selenium import webdriver
# 1 定义驱动工具类
class DriverUtil: //通过class关键字,driver驱动
_driver = None //首先定义变量,为空
# 2 获取浏览器驱动对象,并完成初始化操作 (get_deriver方法)
@classmethod
def get_driver(cls):
if cls._driver is None:
cls._driver=webdriver.Chrome() //获取驱动对象,如果cls._driver为空,创建Chrome浏览器
cls._driver=maximize.window() //完成初始化操作,1实现浏览器窗口最大化 2定义隐私等待(30s) 3打开项目首页 4返回浏览器驱动对象
cls._driver=implicitly_wait(30)
cls._driver.get("http://localhost")
return cls._driver
# 3 关闭驱动对象
@classmethod
def quit_driver(cls):
if cls._driver:
cls._driver.quit() //如果cls._driver不为空,关闭驱动对象
cls._driver = None //设置为空,避免二次出错
2.2封装PO基类,定义BasePage和BaseHandle
2.2.1具体步骤
# 基类定义到base目录下
# 导包
from utils import DriverUtil
# 1 对象库层—基类封装
class BasePage: //定义一个BasePage的类
def _init_(self): //先定义,重写init方法
self.driver = DriverUtil.get_driver //在方法里面定义成一个属性,获取driver对象
#元素定位
def find_element(self,location): //location该参数为元素的类型
return self.driver.find_element(location[0],location[1]) //#1 创建了driver对象后就可以直接使用,最终将element对象返回。
// 该方法需要传递两个参数,1元素定位的类型(从第一个数据中获取),2元素定位的内容
# 2 操作层—基类封装
class BaseHandle: //定义一个类
#完成一个方法的封装
#元素输入操作
def input_text(self,element,text): //1方法名称定义成input_text,在方法里2定义参数(通过element对象传进来,text具体要输出的内容)
element.clear()
element.send_keys(text)
3 实际项目
3 实际项目