对Web界面进行简单自动化测试Selenium
一.公共函数
1.__init__ 创建驱动对象和浏览器对象
自动安装 Edge 驱动 → 创建驱动服务对象 → 启动带参数的 Edge 浏览器 → 把浏览器对象保存在 self.driver
部分代码 | 功能 |
---|---|
EdgeChromiumDriverManager().install() | 下载并返回 Edge 驱动路径 |
Service(...) | 用驱动路径创建服务对象 |
webdriver.Edge(...) | 启动浏览器实例(传入驱动和参数) |
self.driver = ... | 把浏览器对象保存到当前类属性 |
2.截图
一个文件夹存储图片 为了分区哪天运行的,一天创建一个文件夹直接命名为当地时间,截图命名要明确 哪个函数 什么时候创建的,函数名+当地时间
1.dirname=datetime.datetime.now().strftime("%Y-%m-%d")
获取当地时间并格式化
2.sys._getframe().f_back.f_code.co_name
获取函数名
3.os.path.join("..", "images", dirname, filename)
拼接路径 -》 ../images/dirname/filename
4.driver.save_screenshot(path)
创建图片
二.登录界面测试
先获取公共的dirver,get传入url打开网页,进行测试。
1.先正常登录 找到元素.send_keys填写关键词 .click点击登录 assert判断有没有登录成功。
因为要在登录完成后的界面,继续进行操作 先back()后退到上一个登录界面。
此时还要上次输入的关键词,先clear清除 再进行输入。建议在每次输入关键词前都进行一次clear 防止关键词累加
三.博客首页测试
博客首页测试可以分为登录 非登录状态下
分别判断 首页下各个元素是否存在
测试完登录界面后面继续测试首页(登录状态),怎么搞?
新建文件 导入测试类的对象 通过对象调用测试方法
if __name__ == '__main__':
在下进行对象的调用
调用完成后再退出
就代表:这些测试代码只在你直接运行
RunTest.py
时执行,不会在其他地方导入时乱执行,保证了模块的可重用性和清晰结构。