python+selenium2自动化测试
依山临水
坚持学习
展开
-
python+selenium2自动化测试学习笔记-总结篇
本系列文章从五月开始到现在十月,差不多经历了半年时间,回顾一下,本系列文章从零开始包含了python基础,webdriver api学习,python中级篇,unittest单元测试框架,pom设计模式,轻量级框架设计等内容。对于我们学习自动化测试技术来说,入门应该是可以了,当然了也不是很全面,比如对windows控件操作autoit的使用,使用jenkins集成构建项目等,这些内容后续会考虑写在...原创 2018-10-18 17:07:59 · 862 阅读 · 0 评论 -
python+selenium2学习笔记unittest-05测试用例实例
看一下非常简单的目录结构test_baidufrom selenium import webdriverimport unittestimport timeclass MyTest(unittest.TestCase): def setUp(self): self.driver = webdriver.Firefox() self.dr...原创 2018-08-20 15:40:32 · 206 阅读 · 0 评论 -
python+selenium2学习笔记unittest-04装饰器skip用法
在运行测试用例时,有时需跳过或判断用例时,可以用装饰器来实现主要的几个方法就是下面的这几种import unittestclass test(unittest.TestCase): def setUp(self): pass @unittest.skip('跳过') def test_01(self): print("直接跳过"...原创 2018-08-20 15:13:25 · 840 阅读 · 0 评论 -
python+selenium2学习笔记unittest-03断言
断言的方法网上归纳的很多主要有以下这些断言语法 解释 assertEqual(a, b) 判断a==b assertNotEqual(a, b) 判断a!=b assertTrue(x) bool(x) is True assertFalse(x) bool(x) is False assertIs(a, b) a is b ass...原创 2018-08-20 15:09:38 · 172 阅读 · 0 评论 -
python+selenium2学习笔记unittest-02TestSuite
接上篇本篇介绍一下测试套件的用法新建,test_03加法from test_01加法 import countimport unittestclass TestCount2(unittest.TestCase): def setUp(self): print("start") #@unittest.skip("跳过") def tes...原创 2018-08-20 15:03:13 · 253 阅读 · 0 评论 -
python+selenium2学习笔记unittest-01TestCase
首先,单元测试的本身就是用代码去验证另一段代码,而单元测试框架主要的功能:提供用例组织与执行 提供丰富的比较方法 提供丰富的日志看几个例子来先接触一下1.新建文件,test_01加法class count: def __init__(self,a,b): self.a = int(a) self.b = int(b) #计算加法...原创 2018-08-20 14:21:25 · 260 阅读 · 0 评论 -
python+selenium2学习笔记python中级篇-06多线程
总结一下threading的用法Thread是线程类,有两种使用方法,直接传入要运行的方法或从Thread继承并覆盖run()第一种,看一个简单的例子import threading,timedef music(file,times): for i in range(times): print('listening %s---%s'%(file,time....原创 2018-08-17 16:59:35 · 969 阅读 · 0 评论 -
python+selenium2学习笔记python中级篇-04实例、静态和类方法
class a(object): b = 1 def cc(self): print('cc') @staticmethod def dd(): print('dd') print(a.b) @classmethod def ee(cls): print('ee') ...原创 2018-08-13 09:56:52 · 200 阅读 · 0 评论 -
python+selenium2学习笔记python中级篇-03init和self
class person: def __init__(self,name,age): self.name = name self.age = age ''' 这里self就是指类本身,self.name就是person类的属性变量,是person类所有。 而name是外部传来的参数,不是person类所自带...原创 2018-08-13 09:51:52 · 552 阅读 · 0 评论 -
python+selenium2学习笔记python中级篇-02日志输出
import logging#对日志格式及输出做相关配置logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')logging.info('this is in...原创 2018-08-13 09:47:07 · 161 阅读 · 0 评论 -
python+selenium2学习笔记python中级篇-05类的继承
主要想总结一下python的深度优先和广度优先首先Python中分为经典类和新式类: 经典类: class A(): pass 新式类: class A(object): pass 所以经典类和新式类的区别就是,在声明类的时候,新式类需要加上o...原创 2018-08-15 17:06:34 · 239 阅读 · 0 评论 -
python+selenium2学习笔记python中级篇-01字符串切割
之前有四篇python基础内容,比较空,于是准备再补充一点python知识import timefrom selenium import webdriverclass GetString(object): def get_string(self): driver = webdriver.Firefox() driver.maximize_windo...原创 2018-07-20 15:27:04 · 271 阅读 · 0 评论 -
python+selenium2学习笔记POM设计模式-01模式简介
Page Object模式是Selenium中的一种测试设计模式,主要是将每一个页面设计为一个Class,其中包含页面中需要测试的元素(按钮,输入框,标题 等),这样在Selenium测试页面中可以通过调用页面类来获取页面元素,这样巧妙的避免了当页面元素id或者位置变化时,需要改测试页面代码的情况。 当页面元素id变化时,只需要更改测试页Class中页面的属性即可。Page Object模式是...原创 2018-09-25 11:26:11 · 543 阅读 · 0 评论 -
python+selenium2学习笔记POM设计模式-02project
Project:基础类BasePage,封装所有页面都公用的方法,定义open函数,重定义find_element,switch_frame,send_keys等函数。在初始化方法中定义驱动driver,基本url,titleWebDriverWait提供了显式等待方式。新建一个BasePage文件from selenium.webdriver.support.wait im...原创 2018-09-25 11:33:58 · 422 阅读 · 0 评论 -
python+selenium2学习笔记POM设计模式-03page
Project:页面基本操作方法:如open,input_username,input_password,click_submitfrom selenium.webdriver.common.by import Byfrom BasePage import BasePage#继承BasePageclass LoginPage(BasePage): #定位器,通过元素属性定位元...原创 2018-09-25 11:36:36 · 366 阅读 · 0 评论 -
python+selenium2轻量级框架设计-07常用类
一般常用的方法会写在这个里面,包括重写了元素的定位,方法是参考Anthony_tester的写法import time,osfrom selenium.common.exceptions import NoSuchElementExceptionfrom framework.logger import Loggerlogger = Logger(logger='BasePage')...原创 2018-09-27 14:09:07 · 189 阅读 · 0 评论 -
python+selenium2轻量级框架设计-06邮件类
本节转自https://www.cnblogs.com/yufeihlf/p/5726619.html,写的很全很详细,文末加上了我自己用的代码python发邮件需要掌握两个模块的用法,smtplib和email,这俩模块是python自带的,只需import即可使用。smtplib模块主要负责发送邮件,email模块主要负责构造邮件。smtplib模块主要负责发送邮件:是一个发送邮件的动...原创 2018-09-27 14:02:14 · 2008 阅读 · 0 评论 -
python+selenium2轻量级框架设计-10执行脚本
import BeautifulReport,unittest,os,timefrom framework.email import Email#测试报告路径report_path = os.path.dirname(os.getcwd())+'/framework_demo/'now_time = time.strftime('%Y-%m-%d_%H.%M')report_na...原创 2018-10-11 15:24:02 · 223 阅读 · 0 评论 -
python+selenium2轻量级框架设计-09测试用例
import timeimport unittestfrom framework.browser_engine import BrowserEnginefrom pageobjects.baidu_homepage import HomePageclass BaiduSearh(unittest.TestCase): #这个方法每运行一次test都会打开浏览器再关闭 ...原创 2018-10-11 14:28:39 · 227 阅读 · 0 评论 -
python+selenium2轻量级框架设计-05读取Excel
#excel读,写操作import xlrd,xlwt,osfrom framework.logger import Loggerimport datetimelogger = Logger(logger='BasePage').getlog()class Excel(object): def read_excel(self,row,col): #获取文件路径...原创 2018-09-26 17:02:22 · 176 阅读 · 0 评论 -
python+selenium2轻量级框架设计-08页面类
页面类里面主要写的是页面用的的元素的定位方法已经对页面的操作from framework.base_page import BasePageclass HomePage(BasePage): ''' 页面对象中,百度主页的元素定位和简单的操作函数,页面类主要是元素定位和页面操作写成函数,供测试类调用 ''' #元素定位写法,=>和base_page...原创 2018-10-11 13:50:49 · 228 阅读 · 0 评论 -
python+selenium2轻量级框架设计-04读取数据库
#操作sql server数据库 使用mysql则导入pymysqlimport pymssql,pymysqldb =pymssql.connect("localhost","sa","***","****")#使用cursor()方法获取操作游标cursor = db.cursor()sql = "****"try: #执行sql cursor.execute(s...原创 2018-09-26 15:17:05 · 350 阅读 · 0 评论 -
python+selenium2轻量级框架设计-03读取配置文件
任何一个项目,都涉及到了配置文件和管理和读写,Python支持很多配置文件的读写,这里介绍读取ini文件。以读取url和浏览器作为例子#浏览器引擎类import configparser,time,osfrom selenium import webdriverfrom framework.logger import Loggerlogger = Logger(logger=...原创 2018-09-26 14:22:55 · 159 阅读 · 0 评论 -
python+selenium2轻量级框架设计-02日志类
本文介绍如何写一个Python日志类,用来输出不同级别的日志信息到本地文件夹下的日志文件里。import logging,time,osclass Logger(object): def __init__(self,logger): ''' 指定保存日志的文件路径,日志级别,以及调用文件 将日志存入到指定的文件中...原创 2018-09-26 14:18:21 · 215 阅读 · 0 评论 -
python+selenium2轻量级框架设计-01框架结构
接下来会介绍一个比较简单的框架结构,先看一下分类config文件夹里放的是配置文件framework文件夹里面放的是公共类,常用类,还有读配置文件类、日志类、截图类、发送邮件、生成测试报告、操作读取数据库、读取Excel等,后面几篇会一一介绍logs文件夹存放生成的日志文件pageobject存放页面类包括元素的定位等screenshots文件放的是生成的截图test_...原创 2018-09-26 11:11:10 · 295 阅读 · 0 评论 -
python+selenium2学习笔记POM设计模式-03testcase
import unittestfrom LoginPage import LoginPagefrom selenium import webdriverclass caselogin(unittest.TestCase): def setUp(self): self.driver = webdriver.Firefox() self.driver.i...原创 2018-09-25 11:39:47 · 256 阅读 · 0 评论 -
python+selenium2学习笔记webdriver-23其他内容
本节留着以后补充东西,另外webdriver的内容也到此告一段落。1.获取链接信息from selenium import webdriverdriver = webdriver.Firefox()driver.maximize_window()driver.implicitly_wait(5)driver.get('http://www.baidu.com')#获取页面元素的...原创 2018-07-20 15:17:55 · 201 阅读 · 0 评论 -
python+selenium2学习笔记webdriver-22数据驱动
这一节和上一节差不多,看代码首先还是登陆退出:class log(): #登录 def login(self,driver,username,password): driver.switch_to_frame("x-URS-iframe")#需先跳转到iframe框架 driver.find_element_by_name("email")...原创 2018-07-20 11:01:14 · 160 阅读 · 0 评论 -
python+selenium2学习笔记webdriver-06鼠标事件
鼠标操作的方法封装在ActionChains中常用方法:perform():执行所有ActionChains中存储的行为context_click():右击double_click():双击drag_and_drop():拖动move_to_element():鼠标悬停from selenium import webdriver#引入ActionChains类from seleni...原创 2018-06-14 09:21:13 · 128 阅读 · 0 评论 -
python+selenium2学习笔记webdriver-05获取信息
本节介绍一下webdriver如何获取页面上的信息from selenium import webdriverdriver = webdriver.Firefox()driver.get("http://www.baidu.com")#获取输入框大小size = driver.find_element_by_xpath(".//*[@id='kw']").sizeprint(size)...原创 2018-06-06 09:38:16 · 186 阅读 · 0 评论 -
python+selenium2学习笔记webdriver-04xpath定位
接上节单开一节是因为我觉得xpath定位是必须熟练掌握的定位方法,可以定位大部分元素,除了一些需要js处理的或者页面刷新了需要循环去定位的等还是看百度首页方法:find_element_by_xpath("//标签名[@属性='属性值']")9.1id属性:find_element_by_xpath("//input[@id='kw']")9.2class属性:find_element_by_xp...原创 2018-05-20 16:27:06 · 275 阅读 · 0 评论 -
python+selenium2学习笔记webdriver-03元素定位
本节会详细介绍元素定位的方法,而我们做ui自动化的第一步可能也是耗时较多的一步就是元素的定位,熟练的掌握元素的定位方式有助于效率的提升。我们还是用百度来举例。1.通过id定位方法:find_element_by_id()首先打开firebug,定位输入框可以看到id=kw,同时也可以看到xpath里面的定位方式这个后面再说。from selenium import webdriverdriver...原创 2018-05-20 16:05:42 · 297 阅读 · 0 评论 -
python+selenium2学习笔记webdriver-02浏览器操作
这节主要介绍下对浏览器的基本操作直接看代码1.浏览器窗口from selenium import webdriverimport timedriver = webdriver.Firefox()driver.get("http://m.mail.10086.cn")#设置浏览器窗口大小driver.set_window_size(400,800)time.sleep(3)#全屏dr...原创 2018-05-20 15:19:46 · 139 阅读 · 0 评论 -
python+selenium2学习笔记webdriver-01浏览器运行
Selenium(Webdriver)支持Firefox,IE,Chrome等多个浏览器。很多人可能装环境时遇到很多问题,下面简单讲讲如何配置这几个浏览器。浏览器都安装在默认路径即可。1.Firefox火狐浏览器Firefox浏览器是Selenium自动化测试中最常用的一个浏览器,包括Selenium IDE插件,FireBug插件,FirePath插件等自动化测试必备的辅助工具。不过IDE的用处...原创 2018-05-20 15:05:30 · 162 阅读 · 0 评论 -
python+selenium2学习笔记-python基础04
接上篇11.类和方法class a(object): def b(self,c,d): return c+de = a()print(e.b(1,2))输出:3 先创建一个a类,在类中创建一个b方法,返回了c+d,e是实例化a类,调用a的b方法计算1+2再来看这个class a(object): def __init__(self,c,d): s...原创 2018-05-19 16:20:36 · 183 阅读 · 0 评论 -
python+selenium2学习笔记-python基础03
接上篇:7.函数def p_line(a,b): print(a*b)def p_lines(a,b): """注释 :param a: 字符 :param b: 次数 """ c = 1 while c <= 5: p_line(a,b) c += 1p_lines('*',50)...原创 2018-05-19 15:21:16 · 230 阅读 · 0 评论 -
python+selenium2学习笔记-python基础02
接上篇4.if循环直接看一个买车票安检的代码输出:通过if语句,先检查车票,没票的先买票,再判断小刀长度,超过20cm的则让其下车,没有超过则可以上车。5.while循环看代码:输出:计算0到100偶数的和,即能被2整除的,while里面嵌套一个if循环,可以打个断点去体会一下6.for循环for循环遍历用的也是比较多的...原创 2018-05-19 15:02:27 · 148 阅读 · 0 评论 -
python+selenium2学习笔记-python基础01
前言:语言是基础,语言学习的越扎实后期所花的时间就越少。我这里提供两个方法仅供参考(因为我也是个半懂不懂的菜鸡):1.大概的学习的python基础,然后继续学习selenium,这个好处是前期入门较快,但是在后面的理解上比如pom设计模式会卡你一段时间,而且容易处于一种半懂不懂的状态,知其然不知其所以然,像我一样。2.系统的学习语言基础,配合着扎实的学习基础,虽然前期进展慢,但是后面会比较轻松,前...原创 2018-05-19 14:38:46 · 157 阅读 · 0 评论 -
python+selenium2学习笔记-环境配置
1. 安装python 默认路径即可,卸载的话再次运行安装程序即可打开cmd,输入python回车,显示出版本号即说明安装成功2.安装pycharm3.安装selenium目前本人使用的版本号为2.53.6在python的script目录下面输入pip,输入pip install selenium==2.53.6"=="前面不能有空格,不然会报错,进度100%即安装成功4.浏览器安装目前本人使用的...原创 2018-05-19 13:48:18 · 172 阅读 · 0 评论 -
python+selenium2学习笔记webdriver-07键盘事件
直接看代码,用法比较简单from selenium import webdriverfrom selenium.webdriver.common.keys import Keysimport timedriver = webdriver.Firefox()driver.get("http://www.baidu.com")driver.find_element_by_id("kw")....原创 2018-06-14 09:26:35 · 137 阅读 · 0 评论