
Python3+selenium界面自动化测试框架
梦忆安凉
这个作者很懒,什么都没留下…
展开
-
python3+selenium框架设计10-发送邮件
使用python3的email模块和smtplib模块可以实现发送邮件的动能。email模块用来生成email,smtplib模块用来发送邮件,接下来看如何在生成测试报告之后,并将报告放在邮件附件中并发送给项目组的人,在framework文件夹下新建my_email.py文件,项目结构如下。以qq邮箱为例,在使用qq邮箱的SMTP服务时,需要在qq邮箱-账户中先开启,并且生成授权...原创 2018-08-03 19:37:18 · 3117 阅读 · 6 评论 -
python3+selenium框架设计09-生成测试报告
使用HTMLTestRunner可以生成测试报告。HTMLTestRunner是unittest模块下的一个拓展,原生的生成报告样式比较丑,GitHub上有大佬优化过后的版本:GitHub地址。下载之后解压应该是这样的我们需要使用的是HTMLTestRunnerCN.py和EN.py 这两个。一个生成的是中文报告,一个生成的是英文报告。想用哪个版本的就把对应版本的.py文件复制到pytho...原创 2018-08-03 19:12:34 · 1368 阅读 · 2 评论 -
python3+selenium框架设计08-进一步实现POM
之前都是只有一个页面,一个用例。这次两个页面。两个测试用例。其实界面自动化测试最大的难点在于driver的传递,需要保持唯一性。另外就是断言的难点。修改之前的BaiduPage,新增部分代码from Selenium_lesson.framework.Base_Page import BasePageclass BaiduPage(BasePage): kw = ['id','...原创 2018-08-03 19:00:40 · 1005 阅读 · 1 评论 -
python3+selenium框架设计07-unittest单元测试框架
可以自行百度学习下单元测试框架,或者看 Python3学习笔记26-unittest模块在项目下新建一个entrance.py文件。并使用之前的测试用例进行演示。目前项目结构。在entrance.py文件加上如下代码并运行import testsuites.test_baiduimport unittestif __name__ == "__main__": sui...原创 2018-08-03 18:26:34 · 927 阅读 · 0 评论 -
python3+selenium框架设计06-编写POM测试用例
之前我们已经把测试基类,配置文件操作,浏览器引擎类封装完成。接下来使用POM的设计思路来创建我们的测试用例。接下来看一个实例,先在项目下新建pageobject文件夹。这个文件夹下放所有要测试的页面类,在下面新建BaiduPage.py。用来写关于百度首页的元素定位和操作。在项目下新建testsuites文件夹。这个文件夹下方所有页面对应的测试类,在下面新建test_baidu.py。用来编写测试...原创 2018-08-03 17:44:39 · 1987 阅读 · 5 评论 -
python3+selenium框架设计05-配置文件和浏览器引擎类
python3配置文件的增删改查等操作可以使用内置的ConfigParser模块,可以自行百度学习,也可以看 Python3学习笔记27-ConfigParser模块配置文件一般存放着环境信息,比如url和一些测试过程中后续需要用到的字段。还有测试中需要导入,导出的一些文件。在项目下新建Config文件夹,文件夹下新建config.ini文件。项目结构如下实际项目测试中,比如测试环境和...原创 2018-08-03 17:03:45 · 1354 阅读 · 4 评论 -
python3+selenium框架设计04-封装测试基类
在完成了日志类封装之后,那我们就要对测试基类进行实现,在其中对一些请求再次封装,在项目下新建一个framework文件夹,在文件夹下新建Base_Page.py文件,这是用来写测试基类的文件。在项目下新建screenshots文件件,用来存放截图。项目结构如下。具体怎么封装还是要看被测试需要什么,只能提供一个大致思路,我项目能用的封装,你项目并不一定能用测试基类的思路就是把所有能...原创 2018-08-03 12:19:03 · 3914 阅读 · 2 评论 -
python3+selenium框架设计03-封装日志类
首先我们先来实现日志的功能,日志可以使用python3自带logging模块,不会的可以百度一下相关文章,也可以看我另外一篇文章Python3学习笔记25-logging模块在封装日志类前,我们需要想一下,我们需要实现怎样的日志功能,需要把日志放到项目下指定路径,文件名为日期.log,需要把所有日志输出到一个文件中,需要把报错的日志单独输出到另一个文件,info和error需要不同的日志格式...原创 2018-08-03 10:55:27 · 1855 阅读 · 0 评论 -
python3+selenium框架设计02-自动化测试框架需要什么
什么是自动化测试框架自动化测试框架能够提供便利给用户高效完成一些事情,比如,结构清晰开发脚本,多种方式、平台执行脚本,良好的日志和报告去跟踪脚本执行结果。关于自动化测试框架的定义有很多,在我大致理解下就是把能实现不同功能的软件组合在一起,实现特定的目的,这就是一个简单的自动化测试框架。界面自动化测试框架核心是选择 一个用来编写脚本的语言,一个用来web界面的库,管理脚本的执行工具。这里...原创 2018-08-03 10:44:24 · 1587 阅读 · 0 评论 -
python3+selenium框架设计01-Page Object
页面对象模型Page Object Modal是一种脚本设计模型,将页面元素,业务操作分割,当实际页面发生变化的时候,只需要修改页面元素文件,业务操作不需要修改。具体实现需要先写一个页面公共类,里面写公共的方法,比如把元素定位,元素操作等方法重新封装。之后所有页面类继承页面公共类,页面类中只写该页面需要定位的元素,并把对应元素的操作封装成一个个方法。最后测试类调用这些方法组成一个业务测试用例。...原创 2018-08-02 18:02:30 · 2470 阅读 · 0 评论 -
python3+selenium入门16-窗口截图
有时候需要把一些浏览器当前窗口截图下来,比如操作抱错的时候。WebDriver类下.get_screenshot_as_file()方法可窗口截图,需要传入一个截图文件名的路径。window要用\\当做路径符from selenium import webdriverimport timedr = webdriver.Firefox()dr.get('https://www.baidu...原创 2018-08-01 16:17:44 · 711 阅读 · 0 评论 -
python3+selenium入门15-执行JavaScript
有时有些功能需要通过js来执行,比如拖动浏览器的滚动条。通过execute_script()方法可以执行js的代码window.scrollTo()可以传两个参数,第一个参数是下方滚动条的位置,第二个参数是右边滚动条的参数from selenium import webdriverimport timedr = webdriver.Firefox()dr.get('https://...原创 2018-08-01 15:52:07 · 1496 阅读 · 0 评论 -
python3+selenium入门14-上传下载文件
上传文件一种方式是通过定位input标签,然后使用send_keys()方法传入需要上传文件的路径。另一种是使用第三方插件去上传文件。下面看下imput标签的方式。工具可以自己查下。<!DOCTYPE html><html><head> </head><body><form action="demo_form.ph...原创 2018-07-31 17:02:01 · 1301 阅读 · 3 评论 -
python3+selenium入门13-操作cookie
可以把cookie理解为自己账户的身份证。因为http协议是无状态的,上一个请求和下一个请求没有关系。但是有时需要有关联。比如登录之后,才能进行操作这样的设置。这个就是cookie在起作用。登录成功时,服务器会给浏览器一个cookie,浏览器会解析存在本地。然后同一个网站,下一次请求时就会把这个cookie带上,告诉服务器是哪个用户在操作。在关闭浏览器时cookie有效期结束。WebDrive...原创 2018-07-30 12:20:19 · 708 阅读 · 0 评论 -
python3+selenium入门12-警告框处理
在WebDriver中要处理JS生成的alert、confirm以及prompt,需要使用到switch_to_alert()定位到alert/confirm/prompt,然后再使用text、accept()、dissmiss()、send_keys()等方法进行操作。text:获得alert/confirm/prompt中的文本信息accept():接受警告框dissmiss():...原创 2018-07-30 10:26:57 · 555 阅读 · 0 评论 -
python3+selenium入门11-窗口切换
在打开新的浏览器窗口时,如果要定位新窗口的元素,需要先切换到这个新打开的窗口中,才能定位到该窗口下的元素。current_window_handle:获取当前句柄。可以把句柄理解成窗口的身份证window_handles:获取所有打开窗口的句柄from selenium import webdriverimport timedr = webdriver.Chrome()dr....原创 2018-07-27 17:53:50 · 565 阅读 · 2 评论 -
python3+selenium入门10-表单切换
当元素在ifarm或farm中时,需要先进入到表单中,然后才能定位元素进行操作。直接对元素定位。会提示元素无法找到。<!DOCTYPE html><html><head></head><body><iframe id = 'if' src="https://www.baidu.com" width="800&q原创 2018-07-27 16:30:27 · 659 阅读 · 0 评论 -
python3+selenium入门09-键盘事件
Keys类提供了键盘上几乎所有按键的方法。通过send_keys()方法不仅可以用来模拟键盘输入,还可以用它来模拟键盘上的按键。包括组合键,比如Ctrl+a等需要导入Keys类from selenium.webdriver.common.keys import Keysfrom selenium.webdriver.common.keys import Keysfrom se...原创 2018-07-27 15:37:11 · 1104 阅读 · 3 评论 -
python3+selenium入门08-鼠标事件
使用click()可以模拟鼠标的左键点击事件,现在的web页面中有很多其他的鼠标交互方式,比如鼠标右击、双击、悬停、鼠标拖放等功能。在WebDriver中,将这些关于鼠标操作的方法封装在ActionChains类。导入ActionChains类from selenium.webdriver.common.action_chains import ActionChains Acti...原创 2018-07-27 14:56:06 · 762 阅读 · 0 评论 -
python3+selenium入门07-元素等待
在使用selenium进行操作时,有时候在定位元素时会报错。这可能是因为元素还没有来得及加载导致的。可以等过元素等待,等待元素出现。有强制等待,显式等待,隐式等待。 强制等待就是之前文章中的time.sleep(),只是为了看到界面操作效果才那样设置的。这个是不管找没找到都会等待的。基本代码中不会用这个。 显式等待WebDriverWait类是WebDriver提供的...原创 2018-07-26 20:51:29 · 1123 阅读 · 0 评论 -
python3+selenium入门06-浏览器操作
WebDriver主要提供元素操作的方法,但也提供了一些关于浏览器操作的方法,比如设置浏览器大小,浏览器前进,后退,刷新等 设置浏览器大小有时候需要设置浏览器大小,比如访问收集网页,设置浏览器大小跟手机一样大的尺寸,比如(480*800)from selenium import webdriverdr = webdriver.Chrome()dr.set_window_siz...原创 2018-07-26 18:13:52 · 542 阅读 · 0 评论 -
python3+selenium入门05-元素操作及常用方法
学习了元素定位之后,来看一些元素的操作,还有一些常用的方法clear()清空输入框内容click()点击send_keys()键盘输入import timefrom selenium import webdriverdr = webdriver.Chrome()dr.get('https://www.baidu.com')#打开百度st = dr.find_element...原创 2018-07-26 18:01:48 · 551 阅读 · 0 评论 -
python3+selenium入门04-元素定位
我们在对浏览界面做操作时,比如点击按钮,搜索框输入内容。都需要把鼠标挪过去,然后再点击,或者输入内容。在selenium操作时也是一样的。需要先对元素进行定位,然后才能进行操作。可以借助浏览器的开发者工具(浏览器F12打开)来查看网页对应的html代码。然后进行定位。可以稍微学习HTML基础,更容易理解。定位方式有八种,这八种各有两个方法,一个是find_element_by_方式,这是定位单...原创 2018-07-19 17:55:42 · 984 阅读 · 0 评论 -
python3+selenium入门03-操作谷歌浏览器
操作谷歌浏览器同样也需要下载相应的driver插件,官网下载。也可以从我的网盘下载,不过可能不是最新的,网盘地址。打开谷歌浏览器的操作和火狐的差不过。from selenium import webdriverdr = webdriver.Chrome()dr.maximize_window()dr.get('https://www.baidu.com')dr.close()we...原创 2018-07-19 15:03:37 · 781 阅读 · 0 评论 -
python3+selenium入门02-操作火狐浏览器
使用selenium打开浏览器的时候,需要先去selenium官网下载一个对应浏览器的的driver插件。selenium下载。官网在国外可能打不开。或者可以从我网盘下载,但可能不是最新的网盘链接。将下载好的文件解压出来,将.exe文件放到python3的安装目录下即可。from selenium import webdriverdr = webdriver.Firefox()dr.ge...原创 2018-07-19 14:55:19 · 560 阅读 · 0 评论 -
python3+selenium入门01-环境搭建
作为一个测试,在最近两年应该有明显的感觉。那就是工作变的难找,要求变的高了,自动化测试,性能测试等。没有自动化测试能力,只会点点点工作难找不说,工资也不高。所以还是要学习一些技术。首先要学习一门编程语言。然后自动化入门可以学习selenium。有java基础可以使用java。没有语言基础的推荐学习python3。网上的教程很多,推荐廖雪峰的python教程。selenium的学习更多是个入门,...原创 2018-07-19 12:09:05 · 550 阅读 · 0 评论