自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 收藏
  • 关注

原创 lua短路求值

lua 判断出来的不是返回 ture 或者 false ,而是返回对应的值。这样我们就可以做一个短路求值。输出结果

2022-11-09 17:58:16 428 1

原创 python 字符串切割

python 字符串切割比较常用

2022-06-23 10:26:46 37252

原创 Python 六大数据类型

python 比较常用的类型

2022-06-20 15:12:53 2039

原创 Python+Selenium 跳过Cookies,登录网站

1.账号可以不用每次都登录,下次可以直接跳过登录的步骤1.先登录一次,保证Cookies是可以跳过登录的最新Cookies。2.复制Cookies文件和Local State文件3.复制到别的文件夹4.使用chrome浏览器的Options参数指定你复制到的文件夹5.再打开浏览器就可以登录成功..................

2022-06-16 15:55:12 921

原创 Python+Selenium 中级篇13 - 隐藏浏览器运行自动化任务

隐藏浏览器运行,大多数都是用来做一些定时任务,让系统自己在后台运行,这样就可以不用管,每天一到时间就可以查看运行结果了。觉得有用点个赞,谢谢啦

2022-06-10 18:11:36 2785

原创 Python+Selenium 基础篇之19 CSS选择器,超好用

css选择器我补上,这个当你做起项目来,你一定会用到,真的很好用

2022-06-07 11:49:36 1472

原创 Python + Tkinter 图形化界面设计2 — 4种标准弹窗提示对话框

标准提示对话框askyesno( 窗口标题, 提示字符串) 创建对话框,提供Yes 和 No两个选项;showwarning(窗口标题, 提示字符) 创建警告对话框,一个OK按钮和警告标识;showinfo(窗口标题, 提示字符) 一个感叹号加OK按钮;showerror(标题, 提示字符) 一个❌和OK按钮;总结一下代码from tkinter import *from tkinter.messagebox import *class InFo(): def as

2022-05-30 19:33:32 1143

原创 python pyinstaller 把python文件打包成exe可执行程序

1.安装模块1、pyinstaller这里建议最好使用命令安装,手动下载安装有很多其他的模块不存在,我就一开始是手动安装,安装一次缺一个模块,然后补一个,然后又少一个,命令行安装就没这个问题了pip install pyinstaller2、pyQt5建议也安装一下这个模块。这里也建议使用命令行安装(管理员模式)pip install pyQt52.打包1、命令介绍默认打包:默认是 -D,意思是打成一个文件夹。pyinstaller **.py打包成一个文件:-F 选项可以打出

2022-05-23 19:41:33 449

原创 Python + Tkinter 图形化界面设计1 —— 第一个图形化界面

图形化界面设计的基本理解Python自带了tkinter 模块,实质上是一种流行的面向对象的GUI工具包 TK 的Python编程接口,提供了快速便利地创建GUI应用程序的方法。其图像化编程的基本步骤通常包括:导入 tkinter 模块创建 GUI 根窗体添加人机交互控件并编写相应的函数。在主事件循环中等待用户触发事件响应。窗体控件布局根窗体是图像化应用程序的根控制器,是tkinter的底层控件的实例。当导入tkinter模块后,调用 Tk()方法可初始化一个根窗体实例 root ,用 tit

2022-05-07 15:59:24 977

原创 Python+Selenium 自动化框架篇11 自动化测试生成报告

本文来介绍如何生成自动化测试报告,HTMLTestRunner.py是一个能生成一个HTML格式的网页报告,我们需要在我们自动化框架里面继承一个报告输出,直接来看看效果。网盘的HTMLTestRunner文件,适合Python3链接:https://pan.baidu.com/s/11UJg-_DaNvvhMboHuasHIA 提取码:wsbd首先在根目录下创建一个 test_report 文件夹然后在测试套件TestRunner.py这个文件输入代码如下:# coding=utf-8imp

2022-05-02 06:06:50 2349

原创 Python+Selenium 自动化框架篇10 unittest之discover()执行脚本方法

本文来介绍,如果利用discover()方法去加载一个路径下所有的测试用例。这个方法是不是太适合我们现在的需求,例如我只需要跑testsuite包下所有测试用例,不管在里面有多少个包和多少个测试类,只需要用discover()搞定,来看看这个场景下TestRunner.py如何写。# coding = utf-8import unittestsuite = unittest.TestLoader().discover("testsuits")if __name__ == '__main__':

2022-05-02 05:19:24 1082

原创 Python+Selenium 自动化框架篇9 unittest之makeSuite()执行脚本方法

本文介绍利用makeSuite()方法,一次性加载一个类文件下所有测试用例到suite中去。还是利用前面一篇文章中的测试脚本,来看看TestRunner.py如何写。# coding = utf-8import unittestfrom testsuits.test_baidu_search import BaiduSearchsuite = unittest.TestSuite(unittest.makeSuite(BaiduSearch))if __name__ == '__main__

2022-05-02 05:15:50 1191

原创 Python+Selenium 自动化框架篇8 unittest执行脚本方法之addTest

本文开始介绍如何通过unittest来管理和执行测试用例,这一篇介绍unittest下addTest()方法来加载测试用例到测试套件中去。新建的测试脚本,test_get_page_title.py代码如下:# coding = utf-8import unittestimport timefrom framework.browser_engine import BrowserEnginefrom pageobjects.baidu_frontpage import FrontPagec

2022-05-02 05:09:44 777

原创 Python+Selenium 自动化框架篇7 一个类文件写多个测试固件的方法

到前面这一篇文章,简单的Python+Selenium自动化测试框架就已经算实现了。接下来的主要是介绍,unittest管理脚本,如何如何加载执行脚本,再就是采用第三方插件,实现输出html的测试报告。本文来介绍下,在同一个类中,多个测试函数时候,测试固件如何写为了说明这个问题,我们在之前的测试类test_baidu_search.py基础上,再写一个test_search2()的测试用例,看看会发生什么。# coding=utf-8import timeimport unittestfrom f

2022-05-02 04:58:35 614

原创 Python+Selenium 自动化框架篇6 -- 实现POM

本文进一步演示POM的具体实现,前面POM只是一个页面,一个测试脚本,现在我们要实现三个页面,两个测试脚本。在pageobjects包下,新建2个页面对象:百度新闻页,百度贴吧页,具体文件结构如下图,其他和之前项目层级结构保持不变。...

2022-04-27 20:14:13 2283

原创 Python+Selenium 自动化框架篇5 -- 框架内封装元素方法

前面文章,我们实现了框架的一部分功能,包括日志类和浏览器引擎类的封装,今天我们继续封装一个基类和介绍如何实现POM。关于基类,是这样定义的:把一些常见的页面操作的selenium封装到base_page.py这个类文件,以后每个POM中的页面类,都继承这个基类,这样每个页面类都有基类的方法,这个我们会在这篇文章实现。在实现封装基类里,我们实现了元素八大方式的定位和截图类封装。具体项目层级结构如下图。基类base_page.py的具体实现代码,这里就封装了几个常用方法,其他方法,你自己去练习封装

2022-04-27 15:34:48 2272

原创 Python+Selenium 自动化框架篇之4 - 封装日志类和浏览器引擎类到框架内

这一篇,我们介绍,如何封装自己的日志类和浏览器引擎类。相关步骤:打开PyCharm,创建如下格式的项目层级结构,文件名我保持一样;相关文件代码如下配置文件config.ini相关设计如下:# this is config file, only store browser type and server URL[browserType]#browserName = FirefoxbrowserName = Chrome#browserName = IE[testServer

2022-04-25 17:56:22 1530

原创 Python+Selenium 自动化框架篇之3 - POM自动化设计模型

测试框架的设计模式包括:关键字驱动、POM数据驱动实现:Excel、Yaml、Py、JSON1.POM自动化测试设计:POM全称叫做PageObjectModule,简称PO、POM,中文叫页面对象模型。POM是目前业内应用最为主流的UI自动化测试框架设计模式;在接口自动化测试中,最为主流的叫做关键字驱动。POM就是将所有页面作为对象,组合串联这些对象,实现所有测试流程的自动化。例:购买流程:登录-选择商品-添加商品属性-添加购物城-购物城中下单支付-支付成功-返回首页POM中:登录页执行登

2022-04-25 14:49:52 1783

原创 Python+Selenium 自动化框架篇之2-介绍unittest单元测试框架

1.unittest介绍前面文章已经简单介绍了一些关于自动化测试框架的介绍,知道了什么是自动化测试框架,主要有哪些特点,基本组成部分等。在继续介绍框架设计之前,我们先来学习一个工具,叫unittest。unittest是一个单元测试框架,是Python编程的单元测试框架。有时候,也做叫做“PyUnit”,是Junit的Python语言版本。这里了解下,Junit是Java语言的单元测试框架,Java还有一个很好用的单元测试框架叫TestNG,本系列只学习Python,所以只需要unittest是Pyth

2022-04-24 17:27:47 951

原创 Python+Selenium 自动化框架篇1-什么是自动化测试框架

1.什么是自动化测试框架简单来说,自动化测试框架就是由一些标准,协议,规则组成,提供脚本运行的环境。自动化测试框架能够提供很多便利给用户高效完成一些事情,例如,结构清晰开发脚本,多种方式、平台执行脚本,良好的报告去跟踪脚本执行结果。框架具有以下一些优点:1)代码复用2)最大覆盖率3)很低成本维护4)很少人工干预5)简单报告输出2.常见的测试框架分类早期设计的框架大致可分为以下几类:1)基于模块的测试框架2)基于库(Library)结构测试框架3)数据驱动测试框架,和QTP很像4)关

2022-04-24 16:04:31 1320

原创 Python+Selenium 中级篇12 -继承的使用

本文介绍一个面向对象设计领域里,很常见的一种思想,继承。继承有很多好处,常听到的一句话就是,子类能够直接使用父类的方法,这样就可以减少子类代码量。其实,在自动化测试框架设计过程中,是很有必要把继承加入到你的测试脚本中去。现在baidu目录下建一个inherit.py文件,这个就是我们的父类,里面有一个打开chrome浏览器和打开百度首页的方法。代码如下:import timefrom selenium import webdriverclass Inherit(object): def

2022-04-24 11:38:25 782

原创 Python+Selenium 中级篇11 - 封装一个截图方法

本文介绍把截图类方法封装到BasePage.py文件里,这个文件创建之前的二次封装方法有介绍:我们截图类写死了把截图图片保存到根目录下的Screenshots文件夹里,图片名称是当前系统时间,图片后缀名是png。# coding=utf-8import osimport timefrom test1.logger import Loggermylog = Logger(logger='BasePage').getlog()class BasePage(object): """

2022-04-22 20:12:32 418

原创 Python+Selenium 中级篇10 - 封装一个日志类

如何写一个Python日志类,用来输出不同级别的日志信息到本地文件夹下的日志文件里。为什么需要日志输出呢,我们需要记录我们测试脚本到底做了什么事情,最好的办法是写事件监听。这个事件监听,对我们现在来说,还是有点复杂去理解,所以我这里,选择封装一个简单的日志类,同样达到这个效果。实施方法:在根目录下新建一个Logs的文件夹日志的保存命名,需要系统时间Python中有一个logging模块来支持我们自定义封装一个新日志类。在脚本里,初始化一个日志类的实例对象,然后去控制输出INFO还是ERROR日

2022-04-22 17:45:51 427 1

原创 Python+Selenium 中级篇之9- 获取系统时间和格式化时间显示

本篇文章介绍如何去获取和打印格式化系统时间,我们很多时候,看到一些日志,前面都会记录年月日,时分秒,甚至毫秒,然后才是日志描述。这一篇文章,介绍时间获取和格式化时间,就是为了后面,如何写一个简单的日志类做铺垫的。新建一个get_time.py文件,输入一下代码:# coding=utf-8import timeclass GetTime(object): def get_system_time(self): # print(time.localtime())

2022-04-15 12:08:57 700

原创 Python+Selenium webdriver mange用法-告别手动下载driver

1 使用selenium的webdriver问题通常使用selenium时候我们需要自己单独去下载对应各浏览器版本的webdriver,并在后期针对不同操作系统(mac、windows、linux)或者不同浏览器版本都要反复选择对应版本webdriver为了解决以上问题,webdriver-manage第三方库营运而生,它可以自动帮你识别当前运行环境下系统信息以及对应浏览器信息,并自动下载对应的w

2022-04-15 11:12:35 5124

原创 Python+Selenium 中级篇8 读取配置文件

本文来介绍下Python中如何读取配置文件。任何一个项目,都涉及到了配置文件和管理和读写,Python支持很多配置文件的读写,这里我们就介绍一种配置文件格式的读取数据,叫ini文件。Python中有一个类ConfigParser支持读ini文件。在项目下,新建一个文件夹,叫config,然后在这个文件夹下新建一个file类型的文件:config.iniconfig.ini内容:# 这是配置文件,存储浏览器类型和服务器 URL[browserType]browserName = Chrome

2022-04-13 19:29:52 335

原创 Python+Selenium 中级篇 7 封装一个浏览器启动类

前一篇文章我们知道了,如何去封装几个简单的Selenium方法到我们自定义的类,这次我们编写一个类,叫浏览器引擎类,通过更改一个字符串的值,利用if语句去判断和控制启动那个浏览器。我们继续在test1这个包下新建一个browser_engine.py文件,然后在另外一个包下新建一个test.py文件去测试这个浏览器引擎类是否工作正常。browser_engine.py中的代码:# coding=utf-8from selenium import webdriverclass BrowserEng

2022-04-12 20:25:59 694

原创 Python+Selenium 中级篇 6- 二次封装Selenium中的方法

本文来介绍,如何把常用的几个webdriver的方法封装到自己写的一个类中去,这个封装过程叫二次封装Selenium方法。我们把打开站点,浏览器前进和后退,关闭和退出浏览器这这个方法封装到一个新写的类中去。我们按照如下层次结构在PyCharm中新建两个包和两个.py文件这里提一下,python中默认规则,包名和文件名都是小写,类名称单词首字母大写,函数名称小写,多个字母下划线隔开。我们尽量遵守下这个不成文的约定。basepage.py的内容:# coding=utf-8class BasePa

2022-04-12 19:35:58 508

原创 Python+Selenium基础篇18 最新的获取元素方法

因为获取的元素方法更新了,我在这里记录一下from selenium import webdriverfrom selenium.webdriver.common.by import Bydriver = webdriver.Chrome()# driver.maximize_window()driver.implicitly_wait(10)driver.get("https://www.baidu.com")driver.find_element(By.ID,"kw").send_ke

2022-04-12 19:08:56 1053

原创 Python 中级篇5 -- 静态方法@staticmethod

静态方法在开发时,如果需要在类 中封装一个方法,这个方法:1.既不需要访问 实例属性 或者调用 实例方法2.也不需要访问 类属性 或者调用 类方法这个时候,可以吧这个方法封装成一个 静态方法class Cat(): @staticmethod def cat(): print("这是一个静态方法")Cat.cat()静态方法也是可以直接使用类名. 直接调用...

2022-04-02 15:13:28 4069

原创 python 中级篇4 -- 操作mysql数据库

本文介绍 pymysql 连接 Mysql 数据库进行测试:命令行安装命令pip install pymysql相关代码如下:1.创建表方法def SelectPlanInfo(): conn = pymysql.connect( host="172.0.0.1", # IP port=3308, # 端口号 user="root",password="123456", # 账号、密码 database="test", #

2022-04-02 11:48:39 4976

原创 Python 中级遍 3 -- 类方法@classmethod

类方法 就是针对 类对象的方法在 类方法 的内部可以直接访问 类属性 或者调用其他的类方法class Tool: count = 10 @classmethod def kind(cls): print("这是 %s 个类方法" % cls.count) def __init__(self): print("这是初始化方法")Tool.kind()输出结果:这是 10 个类方法类方法不用创建对象就可以直接调用这样就可以不调用初

2022-04-01 18:10:12 490

原创 python 中级遍2 -- __del__ 方法

__del__方法如果想在对象销毁前,再做一些事情,可以考虑使用 __del__方法1,当使用 类名()创建对象时,为对象分配完空间后,自动调用__init__方法2.当一个 对象呗从内存中销毁钱,会自动调用 __del__方法代码如下:class Method: def __init__(self,name): print("这是初始化方法") # self.属性名 = 属性的初始值 self.name = name def _

2022-04-01 16:16:25 1470

原创 python 中级遍1 - __init__初始化方法

在 Python 的类中,有一种特殊的方法——初始化方法。它的格式是 def init(self):,方法名由 init(initialize 的缩写,初始化的意思)加左右两边的 双下划线 组成。1.__init__初始化方法当使用 类名()创建对象时,对自动执行以下操作:1.为对象在内存中 分配空间 ---- 创建对象2.为对象的属性 设置初始值 ---- 初始方法(init)这个 初始化方法 就是 init 方法 init 是对象的* 内置方法*init 方法是 专门 用来定义一个类

2022-04-01 16:07:47 1309

原创 Python+Selenium基础篇之17 - 爬取的数据导出excel表格

这章我们介绍一下自动化获取到的数据如何导出excel表格相关代码如下:# coding=utf-8import xlwtimport timefrom selenium import webdriverdriver = webdriver.Chrome()driver.get('https://www.baidu.com/')time.sleep(1)workbook = xlwt.Workbook(encoding='utf-8') #创建workbook对象worksheet =

2022-04-01 11:30:00 2691

原创 Python+Selenium基础篇之16-如何截图并保存

本文介绍如何利用Selenium的方法进行截图,在测试过程中,是有必要截图,特别是遇到错误的时候进行截图实例,截取全屏和只截取百度一下代码如下:# coding=utf-8import timefrom selenium import webdriverdriver = webdriver.Chrome()driver.get('https://www.baidu.com/')time.sleep(1)# 全屏截图方法driver.get_screenshot_as_file(r'

2022-04-01 11:00:00 928

原创 Python+Selenium基础篇之15-获取页面某个元素的全部属性

本文来介绍如何通过Selenium获取页面元素的某一个属性。一个元素可能有多个属性,例如 class, id, name, text, href, vale等等。相关脚本代码如下:# coding=utf-8import timefrom selenium import webdriverdriver = webdriver.Chrome()driver.get('https://www.baidu.com/')time.sleep(1)for link in driver.find_e

2022-03-31 12:15:50 1222

原创 Python+Selenium基础篇之14-获取当前页面全部图片信息

本文来介绍下如何获取当前页面全部的图片信息,图片信息可能包括,图片名称,图片大小等。相关脚本代码如下:# coding=utf-8import timefrom selenium import webdriverdriver = webdriver.Chrome()driver.get('https://tieba.baidu.com/index.html')time.sleep(1)# 循环所有后缀为‘img’的图片,并打印输出图片信息、名称,图片大小for image in dri

2022-03-31 11:43:41 1914

原创 Python+Selenium基础篇之13 -获取元素上面的文字

如何通过Selenium方法来获取某一个元素的text属性值。在很多自动化测试脚本中,需要多次获取元素的text值,拿过来进行对比和匹配。判断登录键文字代码如下:# coding=utf-8import timefrom selenium import webdriverdriver = webdriver.Chrome()driver.get('https://www.baidu.com')time.sleep(1)error_mes = driver.find_element_b

2022-03-31 11:36:07 3569

原创 Python+Selenium基础篇之12-自定义浏览器窗口大小

设置符合不同测试场景浏览器窗口大小测试脚本代码如下:# coding=utf-8import timefrom selenium import webdriverdriver = webdriver.Chrome()driver.maximize_window() # 全屏driver.get('https://www.baidu.com')time.sleep(1)print(driver.get_window_size())driver.set_window_size(1280

2022-03-30 19:28:22 3460

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除