![](https://img-blog.csdnimg.cn/20190918140012416.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
UI自动化测试selenium
selenium
杰森斯坦森1150
热爱生活,热爱运动
展开
-
pytest单元测试框架
1.简介pytest:基于unittest之上的单元测试框架自动发现测试模块和测试方法断言使用assert + 表达式可以设置会话级别、模块级别、类级、函数级的fixtures有丰富的插件库2.pytest收集测试用例的规则1.默认从当前目录中搜集测试用例,即在那个目录下运行pytest命令,则从那个目录当中搜素;2.搜索规则:1).符合命名规则test_*.py或者 *_test.py文件2).以test_开头的函数名3).以Test开头的测试类(没有__init__函数)当原创 2020-12-14 00:00:38 · 371 阅读 · 2 评论 -
selenium之PO模式
selenium之PO模式PO模式的精髓:测试对象和测试用例的分离Page Object的设计思想上是把元素定位和元素操作进行分层,这样带来的最直接的好处是当元素发生变化时,只需维护page层的定位,而不需要关心在那些测试用例当中使用了这些元素。在编写测试用例时,也不需要关心元素是如何定位的。下边以百度搜索为例来通过代码来说明PO模式1.封装常用的元素操作base.pyimport timefrom selenium import webdriverclass BasePage(object原创 2020-09-14 23:39:05 · 1518 阅读 · 0 评论 -
selenium之操作Cookie
selenium操作Cookie有时我们需要验证浏览器中的cookie是否正确,因为基于真实的cookie是无法白盒测试和集成测试的。webdriver提供了操作Cookie的相关方法,可以读取,添加、删除cookieget_cookies() 获得所有cookieget_cookie(name)返回字典中key为name的cookie值add_cookie() 添加cookiedelete_cookie() 删除cookiedelete_all_cookies() 删除所有cookie下边原创 2020-09-10 18:42:27 · 213 阅读 · 0 评论 -
selenium之浏览器文件下载
selenium之文件下载WebDriver允许我们设置默认的文件下载路径,也就是说,文件会自动下载并且存放到设置的目录中,下边以chrome浏览器为例,自动化代码如下:chrome浏览器文件下载from selenium import webdriveroptions = webdriver.ChromeOptions()#TODO 'profile.default_content_setting.popups':0 设置为0表示禁止弹出下载窗口#TODO 'download.defaul原创 2020-09-10 17:49:26 · 1209 阅读 · 1 评论 -
selenium之上传操作
selenium之谷歌浏览器上传操作上传有两种情况:1.如果是input可以直接输入路径的,那么直接调用send_keys输入路径2.非input标签的上传,则需要借助第三方工具2.1 AutoIt我们去调试生成的au3或exe文件2.2sendKeys第三方库(目前只支持到2.7版本)2.3 Python pywin32库,识别对话框句柄,进而操作下边按照以第三种为例:谷歌浏览器与windows窗口的上传窗口交互上传.pyimport win32guiimport win32con原创 2020-09-10 16:58:24 · 257 阅读 · 0 评论 -
pywinauto自动化控制操作
pywinauto1.pywinauto的环境安装1. 在线安装,在dos命令框输入pip install pywinauto 进行安装2.离线安装下载压缩包 在官网https://pypi.org/下载解压压缩包,解压之后把dist(dist内的压缩包也需要解压)的文件夹,放到python的安装目录下,在dos命令,进行安装...原创 2020-09-09 20:18:23 · 3398 阅读 · 0 评论 -
selenium之js处理日历控件
selenium之js处理日历控件在web自动化的过程中,我们会遇到日历控制的场景,1.可以直接输入日期2.不能够直接输入日期,只能选择对于不能直接输入日期的控件,对于自动化用代码写起来太繁琐了,下边介绍一种简单的思路:基本思路:利用js去掉readonly属性,然后直接输入时间以12306网站为例可以通过手工进行修改如下截图所示:对于上面的场景用python代码实现如下:#通过js处理日历控件from selenium import webdriverimport timed原创 2020-09-08 17:59:58 · 377 阅读 · 0 评论 -
selenium之js处理滚动条操作
selenium之js处理滚动条操作在网页当中,页面存在滚动条,而你要操作的元素在当前屏幕可见区域之外。那么需要使用滚动条滚动到该元素处,然后再操作它。selenium当中的使用execute_script方法执行js语句来实现滚动给你。execute_script(“arguments[0].scrollIntoView();”,target)其中target为find_element_by_xx找到的元素对象几种滚动方式如下:移动到元素element对象的“底端”与当前窗口的“底部”对齐原创 2020-09-08 14:28:04 · 4186 阅读 · 2 评论 -
selenium之八种元素定位方法
selenium之八种元素定位方法webDriver提供了8种用于定位元素的方法id定位(唯一)find_element_by_id(“kw”)name定位 find_element_by_name(“wd”)class name定位 find_element_by_class_name(“wd”)tag name 定位 find_element_by_tag_name(标签名称)link定位 find_element_by_link_text(a元素的文本内容)partial li原创 2020-09-07 18:19:30 · 464 阅读 · 1 评论 -
web自动化selenium获得验证信息
在进行web自动化测试中,用的最多的几种验证信息是title、current_url和text。title:用于获取当前页面的标题current_url:用于获取当前页面的URLtext: 用于获取当前页面的文本信息example 如下所示:from selenium import webdriverfrom time import sleepdriver = webdriver.Chrome()driver.get("http://www.baidu.com")print("Bef原创 2020-09-07 17:40:45 · 244 阅读 · 1 评论 -
selenium之Alert弹出框处理、鼠标操作、键盘操作
selenium之Alert弹出框处理浏览器弹出框:1.使用switch_to方法先切换到浏览器弹出框。driver.switch_to.alert2.Alert类提供了一系列的操作方法dismiss(): 解散现有警告框 (否)accept(): 接受现有警告框 (是)text :获取弹出框里的内容send_keys(): 在弹出框里输入文字(如果可以输入的话)下边以百度搜索设置弹框处理代码如下:from time import sleepfrom selenium import原创 2020-09-07 15:22:03 · 1440 阅读 · 3 评论 -
自动化测试如何解决验证码的问题
自动化测试如何解决验证码的问题1.去掉验证码(最简单,让开发把验证码的代码注释掉)2.设置万能验证码(和开发沟通设置一个万能验证码)3.验证码识别技术4.记录cookies,通过向浏览器中添加cookie 可以绕过登录的验证码,通过add_cookie()方法将用户名密码写入浏览器cookie ,再次访问系统登录链接将自动登录...原创 2020-09-02 20:39:13 · 347 阅读 · 0 评论 -
web自动化之selenium检查页面是否正确
python自动化之selenium检查页面是否正确判断页面是否正常打开,可以通过打开页面窗口的title进行判断,或者通过页面元素进行判断,但是不能通过url,因为当输入url时,页面可能还未加载出来使用title_contains检查页面是否正确,代码如下:# 判断页面是否正常打开,可以通过打开页面窗口的title进行判断from selenium import webdriverimport timefrom selenium.webdriver.support import expect原创 2020-09-01 21:09:22 · 4203 阅读 · 1 评论 -
web自动化selenium三种等待方式
1.sleep 强制等待.智能等待:最多愿意等待n秒,但是呢,如果在这n秒内,任何一个元素出现了,那就继续下一行代码,超时了报超时异常,如:TimeoutException、NosuchElementExption智能等待由显性等待和隐性等待2.隐性等待:2种场景,1个元素被找到-元素存在,1条命令执行完成每一个会话当中,只需要调用一次,会话:从你打开浏览器,到quit关闭整个过程from selenium import webdriverdriver = webdriver.Chrome(原创 2020-08-18 21:16:42 · 386 阅读 · 0 评论 -
关键字驱动
关键字驱动:web系统自动化实现操作:1.打开浏览器,输入url2.找到元素,输入文本3.找到元素,点击4.检查5.退出原创 2020-08-14 10:38:22 · 226 阅读 · 0 评论 -
什么样的功能或者项目适合做自动化测试?
需求稳定,不会频繁变更研发和测试周期长,需要频繁执行回归测试需要在多种平台上重复运行相同的场景某些测试项目手工成本太高被测软件的开发较为规范,能够保证项目的可测试性原创 2020-05-17 22:40:37 · 1521 阅读 · 0 评论 -
自动化框架分层
框架的分层:代码运行层:run_test.py作用:代码的入口,运行代码,收集测试用例,生成测试报告测试逻辑层:test_case包,各个模块的测试用例方法,便于管理,便于维护数据管理层: data,excel数据,csv数据,数据列表的保存业务逻辑层:common 通用(request_handler,excel_handler),通用的,*logger日志的封装,访问数据库配置文件:config 和项目相关联的,项目地址,数据库地址,logger级别测试报告(输出)report如下图所示原创 2020-05-17 18:43:29 · 1568 阅读 · 0 评论