11 2017 档案

摘要:模块(module) 模块,用一坨代码实现了某个功能的代码集合 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合。而对于一个复杂的功能来说,可能需要多个函数才能完成(函数又可以再不同的.py文件中),n个.py文件组成的戴安集合就称为模 阅读全文
posted @ 2017-11-27 18:03 小曺 阅读(440) 评论(0) 推荐(0) 编辑
摘要:1、分层自动化测试概念 传统的自动化市场更关注产品UI层的自动化测试,而分层的自动化测试倡导产品开发的不同阶段都需要自动化测试 大多公司与研发团队其实是忽略了单元测试与集成测试阶段的自动化测试工作,所以,在分层的自动化测试中,我们有必要对这些定义重新理解和定义。 单元测试:我们需要规范的来做单元测试 阅读全文
posted @ 2017-11-23 22:46 小曺 阅读(4186) 评论(0) 推荐(0) 编辑
摘要:1.递归 在函数内部,可以调其他函数,如果一个函数在内部调用它本身,这个函数就是递归函数。递归算法对解决一大类问题是十分有效的,它往往使算法的描述简洁而且易于裂解 递归算法解决问题的特点: 1)递归是在过程或函数里调用自身 2)在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口 3)递归算 阅读全文
posted @ 2017-11-22 18:39 小曺 阅读(693) 评论(0) 推荐(0) 编辑
摘要:1.深浅拷贝 在Python中将一个变量的值传递给另外一个变量通常有三种:赋值、浅拷贝、深拷贝 Python数据类型可氛围基本数据类型包括整型、字符串、布尔及None等,还有一种由基本数据类型作为最基本的元素所组成的像列表、元组、字典等。 在Python中基本数据类型的赋值、深浅拷贝没有任何意义,都 阅读全文
posted @ 2017-11-20 23:35 小曺 阅读(6291) 评论(0) 推荐(0) 编辑
摘要:1.set(集合) set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。 集合和我们数学中集合的概念是一样的,也有交集、并集、差集、对称差集等概念。 1.1定义集合需要提供一个列表作为参数,也可以不传参数创建一个空集合 1.2set 阅读全文
posted @ 2017-11-20 13:11 小曺 阅读(572) 评论(0) 推荐(0) 编辑
摘要:对于python而言,一切事物都是对象,对象是基于类创建的,对象继承了类的属性,方法等特性 1.int 首先,我们来查看下int包含了哪些函数 # __abs__() 绝对值输出 num = 1 result = num.__abs__() print(result) num = -1 result 阅读全文
posted @ 2017-11-19 22:30 小曺 阅读(663) 评论(0) 推荐(0) 编辑
摘要:1.Python种类 1.1Cpython Python官方版本,使用C语言实现,运行机制:先编译.py(源码文件)->pyc(字节码文件),最终执行时先将字节码转换成机器码,然后交给cpu执行; 如果再次运行时,会优先寻找字节码文件,若源码文件被修改,则会再次编译成字节码; 1.2Jython P 阅读全文
posted @ 2017-11-19 22:08 小曺 阅读(770) 评论(0) 推荐(0) 编辑
摘要:流程控制 与C语言不通的是python的流程控制代码块不是用{}花括号表示的,而是强制缩进来控制的;而且缩进必须一致,官方推荐是使用4个空格,不建议使用tab(制表符)做缩进,一是不同的系统tab所占宽度不一致,会比较乱,二是由于python要求同级缩进必须保持一致,所以有些时候看上去是对齐l,但是 阅读全文
posted @ 2017-11-19 21:19 小曺 阅读(461) 评论(0) 推荐(0) 编辑
摘要:1.python版本间的差异: 2.x与3.x版本对比 只能print()这种形式打印,否则会出现 SyntaxError input raw_inut input:输出原生的数据类型,输入什么类型的值,就输出什么类型 raw_input:全部以字符串形式输出 3.x取消了raw_input方法,只 阅读全文
posted @ 2017-11-19 20:33 小曺 阅读(827) 评论(1) 推荐(0) 编辑
摘要:一、python简介 Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。目前Python已经成为实际上除了中国最流行的开发语言之一 龟叔给Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易 阅读全文
posted @ 2017-11-19 19:34 小曺 阅读(379) 评论(0) 推荐(1) 编辑
摘要:转至博客:上海-悠悠 前言 上一篇是点弹出框上的按钮去保存文件,本篇介绍一种更加优雅的方法,加载Firefox和Chrome的配置文件,不弹出询问框后台下载。 一、FirefoxProfile 1.点下载的时候,如下图,如果不想让它弹出这个询问框,可以加载firefox的配置文件隐藏起来 2.设置各 阅读全文
posted @ 2017-11-10 17:57 小曺 阅读(1739) 评论(0) 推荐(0) 编辑
摘要:转至博客:上海-悠悠 前言前一篇autoit实现文件上传打包成.exe可执行文件后,每次只能传固定的那个图片,我们实际测试时候希望传不同的图片。这样每次调用的时候,在命令行里面加一个文件路径的参数就行。一、命令行参数1.参数化传入的参数,可以通过autoit的命令行参数:``` myProg.exe 阅读全文
posted @ 2017-11-10 17:56 小曺 阅读(1947) 评论(0) 推荐(0) 编辑
摘要:转至博客:上海-悠悠 前言 在jenkins上展示html的报告,需要添加一个HTML Publisher plugin插件,把生成的html报告放到指定文件夹,这样就能用jenkins去读出指定文件夹的报告了。 一、构建后操作 1.前面执行完测试用例后,可以用“添加构建后操作步骤”,读出html报 阅读全文
posted @ 2017-11-10 17:55 小曺 阅读(9408) 评论(1) 推荐(0) 编辑
摘要:转至博客:上海-悠悠 前言 跑自动化用例每次用手工点击jenkins出发自动化用例太麻烦了,我们希望能每天固定时间跑,这样就不用管了,坐等收测试报告结果就行。 一、定时构建语法 * * * * * (五颗星,中间用空格隔开) 第一颗*表示分钟,取值0~59第二颗*表示小时,取值0~23第三颗*表示一 阅读全文
posted @ 2017-11-10 17:54 小曺 阅读(62606) 评论(2) 推荐(4) 编辑
摘要:转至博客:上海-悠悠 前言 在发post请求的时候,有时候body部分要传data参数,有时候body部分又要传json参数,那么问题来了:到底什么时候该传json,什么时候该传data? 一、识别json参数 1.在前面1.8章节讲过,post请求的body通常有四种类型,最常见的就是json格式 阅读全文
posted @ 2017-11-10 17:52 小曺 阅读(1880) 评论(0) 推荐(0) 编辑
摘要:转至博客:上海-悠悠 前言 我们在跑自动化项目的时候,希望有单独的测试机能跑自动化项目,并且能集成到jenkins上构建任务。如果公司已经有jenkins环境了,那无需重新搭建。 只需在现有的平台基础上,新增一个slave节点管理就行了。 一、管理节点 1.打开需要配置的测试电脑(一定要在需要配置的 阅读全文
posted @ 2017-11-10 17:52 小曺 阅读(2209) 评论(0) 推荐(0) 编辑
摘要:转至博客:上海-悠悠 一、加载Chrome配置 chrome加载配置方法,只需改下面一个地方,username改成你电脑的名字(别用中文!!!) '--user-data-dir=C:\Users\username\AppData\Local\Google\Chrome\User Data' # c 阅读全文
posted @ 2017-11-10 17:51 小曺 阅读(743) 评论(0) 推荐(0) 编辑
摘要:转至博客:上海-悠悠 前言 不少小伙伴问非input标签如何上传文档,这个本身就是一坑,无奈很多小伙伴非要跳坑里去,那就介绍一个非主流的上传文件方法吧,用第三方库SendKeys. (本篇基于python2.7版本的,python3的安装SendKeys包自己想办法吧) 一、SendKeys安装 1 阅读全文
posted @ 2017-11-10 17:50 小曺 阅读(1172) 评论(0) 推荐(0) 编辑
摘要:前言 有些class属性中间有空格,如果直接复制过来定位是会报错的InvalidSelectorException: Message: The given selector u-label f-dn is either invalid or does not result in a WebEleme 阅读全文
posted @ 2017-11-10 17:49 小曺 阅读(4545) 评论(4) 推荐(0) 编辑
摘要:转至博客:上海-悠悠 前言 元素定位可以说是学自动化的小伙伴遇到的一道门槛,学会了定位也就打通了任督二脉,前面分享过selenium的18般武艺,再加上五种js的定位大法。 这些还不够的话,今天再分享一个定位神器jquery,简直逆天了! 一、jquery搜索元素 1.按F12进控制台 2.点全部按 阅读全文
posted @ 2017-11-10 17:49 小曺 阅读(1431) 评论(0) 推荐(0) 编辑
摘要:前言 脚本运行的时候,有时候不知道用例的执行情况,这时候可以加入日志,这样出现问题后方便查阅,也容易排查哪些用例执行了,哪些没有执行。 一、封装logging模块 1.关于logging日志的介绍,我这里就不详细讲解了,主要有两大功能,一个是控制台的输出,一个是保存到本地文件 2.先封装loggin 阅读全文
posted @ 2017-11-10 17:48 小曺 阅读(3163) 评论(0) 推荐(0) 编辑
摘要:前言: 有些网站的登录方式跟前面讲的博客园和token登录会不一样,把csrfToken放到cookie里,登录前后cookie是没有任何变化的,这种情况下如何绕过前端的验证码登录呢? 一、登录前后对比 1.如果登录页面有图形验证码,这种我们一般都是绕过登录的方式,如下图通过抓包分析,首先不输入密码 阅读全文
posted @ 2017-11-10 17:47 小曺 阅读(2258) 评论(0) 推荐(0) 编辑
摘要:前言: 前面登录博客园的是传json参数,有些登录不是传json的,如jenkins的登录,本篇以jenkins登录为案例,传data参数。 一、登录jenkins抓包 1.登录jenkins,输入账号和密码 2.fiddler抓包 3.这个body参数并不是json格式,是key=value格式, 阅读全文
posted @ 2017-11-10 17:46 小曺 阅读(2418) 评论(0) 推荐(0) 编辑
摘要:前言 有时候一些业务的功能涉及到多个系统,需要在web系统1打开造一些数据,然后用到某些参数是动态生成的,需要调用web系统2里面的参数。 举个简单例子:在做某些业务的时候,需要手机短信验证码,我不可能去搞个手机连着电脑吧,那样太傻,我们的目的是获取短信验证码,短信验证码都有短信平台去查询。 当然能 阅读全文
posted @ 2017-11-10 17:45 小曺 阅读(5545) 评论(0) 推荐(0) 编辑
摘要:前言 当测试用例写完后,有些模块有改动时候,会影响到部分用例的执行,这个时候我们希望暂时跳过这些用例。 或者前面某个功能运行失败了,后面的几个用例是依赖于这个功能的用例,如果第一步就失败了,后面的用例也就没必要去执行了,直接跳过就行,节省用例执行时间。 一、skip装饰器 skip装饰器一共有四个 阅读全文
posted @ 2017-11-10 17:44 小曺 阅读(2823) 评论(0) 推荐(0) 编辑
摘要:前言 PhantomJS是一个没有界面的浏览器,本质上是它其实也就是一个浏览器,只是不在界面上展示。 PhantomJS非常适合爬虫方面,很多玩爬虫的都喜欢用这个浏览器。 一、PhantomJS环境准备 1.先下载PhantomJS浏览器,下载地址:http://phantomjs.org/down 阅读全文
posted @ 2017-11-10 17:43 小曺 阅读(304) 评论(0) 推荐(0) 编辑
摘要:前言: 装饰器其实就是一个以函数作为参数并返回一个替换函数的可执行函数 上一篇讲到用装饰器解决异常后自动截图,不过并没有与unittest结合,这篇把截图的装饰器改良了下,可以实现用例执行失败自动截图。 一、不带变量的装饰器1.参考资料:http://www.artima.com/weblogs/v 阅读全文
posted @ 2017-11-10 17:42 小曺 阅读(1867) 评论(0) 推荐(0) 编辑
摘要:前言 python2用HTMLTestRunner生成测试报告时,有中文输出情况会出现乱码,这个主要是编码格式不统一,改下编码格式就行。 下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html 一、中文乱码 1.测试报告中,msg自定义异常内 阅读全文
posted @ 2017-11-10 17:42 小曺 阅读(1233) 评论(0) 推荐(0) 编辑
摘要:前言 对于用例失败截图,很多小伙伴都希望在用例执行失败的时候能自动截图,想法是很好的,实现起来并不是那么容易。 这里分享下我的一些思路,当然目前还没找到完美的解决方案,我的思路是用装饰器去解决,希望有高手已经实现的可以指点下。 一、函数作为形参 1.函数的参数也可以是另外一个函数,也就是说传的参数不 阅读全文
posted @ 2017-11-10 17:41 小曺 阅读(1023) 评论(0) 推荐(0) 编辑
摘要:前言 本篇总结了几种js常用的定位元素方法,并用js点击按钮,对input输入框输入文本 一、以下总结了5种js定位的方法 除了id是定位到的是单个element元素对象,其它的都是elements返回的是list对象 1.通过id获取 document.getElementById(“id”) 2 阅读全文
posted @ 2017-11-10 17:39 小曺 阅读(5766) 评论(0) 推荐(0) 编辑
摘要:前言 selenium截取全图小伙伴们都知道,曾经去面试的时候,面试官问:如何截图某个元素的图?不要全部的,只要某个元素。。。小编一下子傻眼了,苦心人,天不负,终于找到解决办法了。 selenium截图 1.selenium提供了几个截取全屏的方法 get_screenshot_as_file(se 阅读全文
posted @ 2017-11-10 16:41 小曺 阅读(459) 评论(0) 推荐(0) 编辑
摘要:前言 文件下载时候会弹出一个下载选项框,这个弹框是定位不到的,有些元素注定定位不到也没关系,就当没有鼠标,我们可以通过键盘的快捷键完成操作。 SendKeys库是专业的处理键盘事件的,所以这里需要用SendKeys解决 一、下载场景 1.当点到下载按钮时候,会弹出如下页面 2.如果想点“保存文件”按 阅读全文
posted @ 2017-11-10 16:40 小曺 阅读(806) 评论(0) 推荐(0) 编辑
摘要:优化html报告 为了满足小伙伴的各种变态需求,为了装逼提升逼格,为了让报告更加高大上,测试报告做了以下优化: 测试报告中文显示,优化一些断言失败正文乱码问题 新增错误和失败截图,展示到html报告里 优化点击截图放大不清晰问题 增加饼图统计 失败后重试功能 兼容python2.x 和3.x 报告效 阅读全文
posted @ 2017-11-10 16:40 小曺 阅读(988) 评论(0) 推荐(0) 编辑
摘要:前言 经常有人在群里反馈,明明代码一样的啊,为什么别人的能出报告,我的出不了报告;为什么别人运行结果跟我的不一样啊。。。 这种问题先检查代码,确定是一样的,那就是运行姿势不对了,一旦导入unittest模块,pycharm会自动识别以unittest的姿势去运行了。 一、unittest运行单个用例 阅读全文
posted @ 2017-11-10 16:39 小曺 阅读(304) 评论(0) 推荐(0) 编辑
摘要:前言 关于非input文件上传,点上传按钮后,这个弹出的windows的控件了,已经跳出三界之外了,不属于selenium的管辖范围(selenium不是万能的,只能操作web上元素)。autoit工具处理windows的控件窗口是专业的,所以这个需借助AutoIt来解决了。 一、环境准备 1.可以 阅读全文
posted @ 2017-11-10 16:39 小曺 阅读(559) 评论(0) 推荐(0) 编辑
摘要:前言 mac自带了python2.7的环境,所以在mac上安装selenium环境是非常简单的,输入2个指令就能安装好 需要安装的软件: 1.pip 2.selenium2.53.6 3.Firefox44.dmg 4.Pycharm (环境搭配selenium2+Firefox46及以下版本兼容, 阅读全文
posted @ 2017-11-10 16:38 小曺 阅读(310) 评论(0) 推荐(0) 编辑
摘要:前言 selenium脚本写完之后,一般是集成到jenkins环境了,方便一键执行。 一、环境准备 小编环境: 1.win10 64位 2.JDK 1.8.0_66 3.tomcat 9.0.0.M4 4.jenkins 2.0 二、安装JDK 1.安装JDK教程很多,这里就不讲了,可以参考这个链接 阅读全文
posted @ 2017-11-10 16:36 小曺 阅读(1058) 评论(1) 推荐(0) 编辑
摘要:前言 到unittest这里基本上可以搭建一个简易的项目框架了,我们可以用一条run_main.py脚本去控制执行所有的用例,并生成报告,发送邮件一系列的动作 一、新建工程 1.打开pycharm左上角File>New Project,在Location位置输入项目名称:D:\test\test_b 阅读全文
posted @ 2017-11-10 16:36 小曺 阅读(181) 评论(0) 推荐(0) 编辑
摘要:前言 selenium2启动Chrome浏览器是需要安装驱动包的,但是不同的Chrome浏览器版本号,对应的驱动文件版本号又不一样,如果版本号不匹配,是没法启动起来的。 一、Chrome遇到问题 1.如果在启动chrome浏览器时候,出现如下界面,无法打开网址,那么首先恭喜你,踩到了坑,接下来的内容 阅读全文
posted @ 2017-11-10 16:01 小曺 阅读(866) 评论(0) 推荐(0) 编辑
摘要:前言 在执行用例过程中由于是无人值守的,用例运行报错的时候,我们希望能对当前屏幕截图,留下证据。 在写用例的时候,最后一步是断言,可以把截图的动作放在断言这里,那么如何在断言失败后截图呢? 一、截图方法 1.get_screenshot_as_file(self, filename) --这个方法是 阅读全文
posted @ 2017-11-10 13:54 小曺 阅读(387) 评论(0) 推荐(0) 编辑
摘要:前言 当登录的账号有多个的时候,我们一般用excel存放测试数据,本节课介绍,python读取excel方法,并保存为字典格式。 一、环境准备 1.先安装xlrd模块,打开cmd,输入pip install xlrd在线安装 >>pip install xlrd 二、基本操作 1.exlce基本操作 阅读全文
posted @ 2017-11-10 13:53 小曺 阅读(238) 评论(0) 推荐(0) 编辑
摘要:前言 在设计用例的时候,有些用例只是参数数据的输入不一样,比如登录这个功能,操作过程但是一样的。如果用例重复去写操作过程会增加代码量,对应这种多组数据的测试用例,可以用数据驱动设计模式,一组数据对应一个测试用例,用例自动加载生成。 一、环境准备 1.安装ddt模块,打开cmd输入pip instal 阅读全文
posted @ 2017-11-10 13:53 小曺 阅读(175) 评论(0) 推荐(0) 编辑
摘要:前言 在定位元素的时候,经常会遇到各种异常,为什么会发生这些异常,遇到异常又该如何处理呢? 本篇通过学习selenium的exceptions模块,了解异常发生的原因。 一、发生异常 1.打开博客首页,定位“新随笔”元素,此元素id="blog_nav_newpost" 2.为了故意让它定位失败,我 阅读全文
posted @ 2017-11-10 13:51 小曺 阅读(2218) 评论(0) 推荐(1) 编辑
摘要:前言 在测试用例中,执行完测试用例后,最后一步是判断测试结果是pass还是fail,自动化测试脚本里面一般把这种生成测试结果的方法称为断言(assert)。 用unittest组件测试用例的时候,断言的方法还是很多的,下面介绍几种常用的断言方法:assertEqual、assertIn、assert 阅读全文
posted @ 2017-11-10 13:49 小曺 阅读(1073) 评论(0) 推荐(0) 编辑
摘要:前言 批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的。 unittest里面是不能生成html格式报告的,需要导入一个第三方的模块:HTMLTestRunner 一、导入HTMLTestRunner 1.这个模块下载不能通过pip安装了,只能 阅读全文
posted @ 2017-11-10 13:47 小曺 阅读(217) 评论(0) 推荐(0) 编辑
摘要:前言 前面讲到unittest里面setUp可以在每次执行用例前执行,这样有效的减少了代码量,但是有个弊端,比如打开浏览器操作,每次执行用例时候都会重新打开,这样就会浪费很多时间。 于是就想是不是可以只打开一次浏览器,执行完用例再关闭呢?这就需要用到装饰器(@classmethod)来解决了。 一、 阅读全文
posted @ 2017-11-10 13:47 小曺 阅读(159) 评论(0) 推荐(0) 编辑
摘要:前言 很多初学者在使用unittest框架时候,不清楚用例的执行顺序到底是怎样的。对测试类里面的类和方法分不清楚,不知道什么时候执行,什么时候不执行。 本篇通过最简单案例详细讲解unittest执行顺序。 一、案例分析 1.先定义一个测试类,里面写几个简单的case # coding:utf-8im 阅读全文
posted @ 2017-11-10 13:46 小曺 阅读(136) 评论(0) 推荐(0) 编辑
摘要:前言 我们在写用例的时候,单个脚本的用例好执行,那么多个脚本的时候,如何批量执行呢?这时候就需要用到unittet里面的discover方法来加载用例了。 加载用例后,用unittest里面的TextTestRunner这里类的run方法去一次执行多个脚本的用例。 一、新建测试项目 1.pychar 阅读全文
posted @ 2017-11-10 13:46 小曺 阅读(192) 评论(0) 推荐(0) 编辑
摘要:前言 熟悉java的应该都清楚常见的单元测试框架Junit和TestNG,这个招聘的需求上也是经常见到的。python里面也有单元测试框架-unittest,相当于是一个python版的junit。 python里面的单元测试框架除了unittest,还有一个pytest框架,这个用的比较少,后面有 阅读全文
posted @ 2017-11-10 13:45 小曺 阅读(162) 评论(0) 推荐(0) 编辑
摘要:前言 有不少小伙伴在安装selenium环境后启动firefox报错,因为现在selenium升级到3.0了,跟2.0的版本还有有一点区别的。 安装环境过程中主要会遇到三个坑: 1.'geckodriver' executable needs to be in PATH 2.Expected bro 阅读全文
posted @ 2017-11-10 13:39 小曺 阅读(215) 评论(0) 推荐(0) 编辑
摘要:前言 登录这个场景在写用例的时候经常会有,我们可以把登录封装成一个方法,然后把账号和密码参数化,这样以后用的登录的时候,只需调用这个方法就行了 一、登录方法 1.把输入账号、输入密码、点击登录按钮三个步骤写成一个方法 2.然后把输入的账号和密码参数化 二、用例 1.下面的用例可以调用前面写的登录方法 阅读全文
posted @ 2017-11-10 13:37 小曺 阅读(205) 评论(0) 推荐(0) 编辑
摘要:前言 在做结果判断的时候,经常想判断某个元素中是否存在指定的文本,如登录后判断页面中是账号是否是该用户的用户名。 在前面的登录案例中,写了一个简单的方法,但不是公用的,在EC模块有个方法是可以专门用来判断元素中存在指定文本的:text_to_be_present_in_element。 另外一个差不 阅读全文
posted @ 2017-11-10 13:37 小曺 阅读(8462) 评论(0) 推荐(0) 编辑
摘要:前言 有时候元素明明已经找到了,运行也没报错,点击后页面没任何反应。这种问题遇到了,是比较头疼的,因为没任何报错,只是click事件失效了。 本篇用2种方法解决这种诡异的点击事件失效问题 一、遇到的问题 1.在练习百度的搜索设置按钮时,点保存设置按钮,alert弹出没弹出(代码没报错,只是获取ale 阅读全文
posted @ 2017-11-10 13:36 小曺 阅读(353) 评论(0) 推荐(0) 编辑
摘要:前言 系统弹窗这个是很常见的场景,有时候它不弹出来去操作的话,会抛异常。那么又不知道它啥时候会出来,那么久需要去判断弹窗是否弹出了。 本篇接着Selenium2+python自动化42-判断元素(expected_conditions)讲expected_conditions这个模块 一、判断ale 阅读全文
posted @ 2017-11-10 13:36 小曺 阅读(4603) 评论(0) 推荐(0) 编辑
摘要:前言 江湖传言,武林中流传八种定位,其中xpath是宝刀屠龙,css是倚天剑。 除了这八种,其实还有十种定位方法,眼看就快失传了,今天小编让失传已久的定位方法重出江湖! 一、十八种定位方法 前八种是大家都熟悉的,经常会用到的 1.id定位:find_element_by_id(self, id_)2 阅读全文
posted @ 2017-11-10 13:35 小曺 阅读(2958) 评论(0) 推荐(1) 编辑
摘要:前言 元素定位有八种方法,这个能看到这一篇的小伙伴都知道了,那么有没有一种方法,可以把八种定位合为一种呢?也就是把定位的方式参数化,如id,name.css等设置为一个参数,这样只需维护定位方式的参数就行了。 小编曾经自己封装过这种方法,最后定位方法写成这样:find_element("id=kw" 阅读全文
posted @ 2017-11-10 13:33 小曺 阅读(376) 评论(0) 推荐(0) 编辑
摘要:前言 获取页面title的方法可以直接用driver.title获取到,然后也可以把获取到的结果用做断言。 本篇介绍另外一种方法去判断页面title是否与期望结果一种,用到上一篇Selenium2+python自动化42-判断元素(expected_conditions) 提到的expected_c 阅读全文
posted @ 2017-11-10 13:31 小曺 阅读(254) 评论(0) 推荐(0) 编辑
摘要:前言 经常有小伙伴问,如何判断一个元素是否存在,如何判断alert弹窗出来了,如何判断动态的元素等等一系列的判断,在selenium的expected_conditions模块收集了一系列的场景判断方法,这些方法是逢面试必考的!!! expected_conditions一般也简称EC,本篇先介绍下 阅读全文
posted @ 2017-11-10 13:30 小曺 阅读(624) 评论(0) 推荐(1) 编辑
摘要:前言 验证码这种问题是比较头疼的,对于验证码的处理,不要去想破解方法,这个验证码本来就是为了防止别人自动化登录的。如果你能破解,说明你们公司的验证码吗安全级别不高,那就需要提高级别了。 对于验证码,要么是让开发在测试环境弄个万能的验证码,如:1234,要么就是尽量绕过去,如本篇介绍的添加cookie 阅读全文
posted @ 2017-11-10 13:29 小曺 阅读(279) 评论(0) 推荐(0) 编辑
摘要:前言: 本来这篇是只在微信公众号(yoyoketang)上发布的,最近一搜,发现本很多人copy(copy公众号的,图片是加载不出来的)了,还没注明出处,不想多说什么,博客上也同步更新这篇吧! 最近群里有不少小白,想入手selenium,但是一直没找到学习路线,还没入门就迷路了,于是小编亲手绘制了一 阅读全文
posted @ 2017-11-10 13:28 小曺 阅读(210) 评论(0) 推荐(0) 编辑
摘要:前言 虽然cookie相关操作在平常ui自动化中用得少,偶尔也会用到,比如登录有图形验证码,可以通过绕过验证码方式,添加cookie方法登录。 登录后换账号登录时候,也可作为后置条件去删除cookie然后下个账号登录 一、获取cookies:get_cookies() 1.获取cookies方法直接 阅读全文
posted @ 2017-11-10 13:25 小曺 阅读(216) 评论(0) 推荐(0) 编辑
摘要:前言 最近看到群里有小伙伴贴出一组面试题,最近又是跳槽黄金季节,小编忍不住抽出一点时间总结了下, 回答不妥的地方欢迎各位高手拍砖指点。 一、selenium中如何判断元素是否存在? 首先selenium里面是没有这个方法的,判断元素存在需要自己写一个方法了。 元素存在有几种形式,一种是页面有多个元素 阅读全文
posted @ 2017-11-10 13:24 小曺 阅读(244) 评论(0) 推荐(0) 编辑
摘要:前言: 在脚本中加入太多的sleep后会影响脚本的执行速度,虽然implicitly_wait()这种方法隐式等待方法一定程度上节省了很多时间。 但是一旦页面上某些js无法加载出来(其实界面元素经出来了),左上角那个图标一直转圈,这时候会一直等待的。 一、参数解释 1.这里主要有三个参数: clas 阅读全文
posted @ 2017-11-10 13:23 小曺 阅读(1192) 评论(0) 推荐(0) 编辑
摘要:前言 有时候通过元素的属性的查找页面上的某个元素,可能不太好找,这时候可以从源码中爬出想要的信息。selenium的page_source方法可以获取到页面源码。 selenium的page_source方法很少有人用到,小编最近看api不小心发现这个方法,于是突发奇想,这里结合python的re模 阅读全文
posted @ 2017-11-10 11:27 小曺 阅读(1044) 评论(0) 推荐(0) 编辑
摘要:前言 通常在做断言之前,都要先获取界面上元素的属性,然后与期望结果对比。本篇介绍几种常见的获取元素属性方法。 一、获取页面title 1.有很多小伙伴都不知道title长在哪里,看下图左上角。 2.获取title方法很简单,直接driver.title就能获取到 二、获取元素的文本 1.如下图这种显 阅读全文
posted @ 2017-11-10 11:25 小曺 阅读(416) 评论(0) 推荐(0) 编辑
摘要:前言 最近有很多小伙伴在问如何判断一个元素是否存在,这个方法在selenium里面是没有的,需要自己写咯。 元素不存在的话,操作元素会报错,或者元素有多个,不唯一的时候也会报错。本篇介绍两种判断元素存在的方法。 一、find_elements方法判断 1.find_elements方法是查找页面上所 阅读全文
posted @ 2017-11-10 11:25 小曺 阅读(1037) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-小T 原文地址:http://blog.csdn.net/real_tino/article/details/59068827 我们在浏览网页时经常会碰到各种花样的弹窗,在做UI自动化测试的时候势必要处理这些弹窗,这里就介绍一下目前前端界两种弹窗的处理方法。 一、alert弹窗 阅读全文
posted @ 2017-11-10 11:24 小曺 阅读(1425) 评论(0) 推荐(0) 编辑
摘要:前言 文件上传是web页面上很常见的一个功能,自动化成功中操作起来却不是那么简单。 一般分两个场景:一种是input标签,这种可以用selenium提供的send_keys()方法轻松解决; 另外一种非input标签实现起来比较困难,可以借助autoit工具或者SendKeys第三方库。 本篇以博客 阅读全文
posted @ 2017-11-10 11:23 小曺 阅读(668) 评论(0) 推荐(0) 编辑
摘要:前言 最近有小伙伴问百度输入后,输入框下方的联想词如何定位到,这个其实难度不大,用前面所讲的元素定位完全可以定位到的。 本篇以百度输入框输入关键字匹配后,打印出联想词汇。 一、定位输入框联想词 1.首先在百度输入框输入关键词,如:博客,然后输入框下方会自动匹配出关键词。 2.这时候可以用firebu 阅读全文
posted @ 2017-11-10 11:23 小曺 阅读(341) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 前言 appium1.5以后的版本才支持toast定位,并且 'automationName'得设置为'Uiautomator2',才能捕获到。 一、 Supported Platforms 1.查看appium v1.7版本[官方文档](https://github.co 阅读全文
posted @ 2017-11-10 10:28 小曺 阅读(4041) 评论(0) 推荐(2) 编辑
摘要:本篇转自博客:上海-悠悠 前言appium1.5以下老的版本是可以通过name定位的,新版本从1.5以后都不支持name定位了一、 name定位报错1.最新版appium V1.7用name定位,报错:> selenium.common.exceptions.InvalidSelectorExcep 阅读全文
posted @ 2017-11-10 10:27 小曺 阅读(1421) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 前言在启动app的时候,如果直接做下一步点击操作,经常会报错,于是我们会在启动完成的时候加sleep。那么问题来了,这个sleep时间到底设置多少合适呢?设置长了,就浪费时间,设置短了,就会找不到元素报错了。这个时候我们可以用wait_activity的语法,等到你想点击的 阅读全文
posted @ 2017-11-10 10:26 小曺 阅读(3596) 评论(0) 推荐(1) 编辑
摘要:前言 最近小伙伴们总有一些测试报告的问题,网上的一些资料生成报告的方法,我试了都不行,完全生成不了,不知道他们是怎么生成的,同样的代码,有待研究。 今天小编写一下可以生成测试报告的方法。个人觉得也是最方便,最省事的,可批量执行测试用例,也比较容易理解的方法。另外一种用遍历的方法,小编在这边就不介绍了 阅读全文
posted @ 2017-11-08 18:07 小曺 阅读(307) 评论(0) 推荐(0) 编辑
摘要:前言 前一篇已经介绍了报告的生成方法,本篇小编优化一下测试报告,使测试报告便于大多数阅读。虽然在我们在测试用例开发时为每个用例添加了注释,但测试报告一般是给非测试人员阅读的,如果能在报告中为每一个测试用例添加说明,那么将会使报告更加易于阅读。 下面还是以百度为例: 一、打开我们的测试用例文件,为每一 阅读全文
posted @ 2017-11-08 18:07 小曺 阅读(251) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-小T 原文地址:http://blog.csdn.net/real_tino/article/details/53467406 Selenium grid是用来分布式执行测试用例脚本的工具,比如测试人员经常要测试多浏览器的兼容性,那就可以用到grid了。下面就来介绍如何在多个浏览 阅读全文
posted @ 2017-11-08 18:06 小曺 阅读(230) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-小T 原文地址:https://i.cnblogs.com/EditArticles.aspx?opt=1 我们在用Selenium遇到多个浏览器窗口或单个浏览器多个标签(Tab)的状况时,往往都不太好处理,这里将介绍两种处理方法。 本文所引用的例子是百度,在百度首页下方有一个“ 阅读全文
posted @ 2017-11-08 18:05 小曺 阅读(770) 评论(0) 推荐(0) 编辑
摘要:前言 在打开页面上链接的时候,经常会弹出另外一个窗口(多窗口情况前面这篇有讲解:Selenium2+python自动化13-多窗口、句柄(handle)),这样在多个窗口之间来回切换比较复杂,那么有没有办法让新打开的链接在一个窗口打开呢? 要解决这个问题,得从html源码上找到原因,然后修改元素属性 阅读全文
posted @ 2017-11-08 18:03 小曺 阅读(304) 评论(0) 推荐(0) 编辑
摘要:前言 在web页面中经常会遇到table表格,特别是后台操作页面比较常见。本篇详细讲解table表格如何定位。 一、认识table 1.首先看下table长什么样,如下图,这种网状表格的都是table 2.源码如下:(用txt文本保存,后缀改成html) <!DOCTYPE html><meta c 阅读全文
posted @ 2017-11-08 18:02 小曺 阅读(788) 评论(0) 推荐(0) 编辑
摘要:前言 前面都是点点滴滴的介绍selenium的一些api使用方法,那么selenium的api到底有多少呢?本篇就叫大家如何去查看selenium api,不求人,无需伸手找人要,在自己电脑就有。 pydoc是Python自带的模块,主要用于从python模块中自动生成文档,这些文档可以基于文本呈现 阅读全文
posted @ 2017-11-08 18:01 小曺 阅读(275) 评论(0) 推荐(0) 编辑
摘要:前言 前面有篇专门用js解决了浏览器滚动条的问题,生活总是多姿多彩,有的滚动条就在页面上,这时候又得仰仗js大哥来解决啦。 一、内嵌滚动条 1.下面这张图就是内嵌div带有滚动条的样子,记住它的长相。 2.页面源码如下:(老规矩:copy下来,用文本保存下来,后缀改成.html,用浏览器打开) <! 阅读全文
posted @ 2017-11-08 17:58 小曺 阅读(337) 评论(0) 推荐(0) 编辑
摘要:前言 日历控件是web网站上经常会遇到的一个场景,有些输入框是可以直接输入日期的,有些不能,以我们经常抢票的12306网站为例,详细讲解如何解决日历控件为readonly属性的问题。 基本思路:先用js去掉readonly属性,然后直接输入日期文本内容 一、日历控件 1.打开12306的车票查询界面 阅读全文
posted @ 2017-11-08 17:54 小曺 阅读(232) 评论(0) 推荐(0) 编辑
摘要:前言 上一篇Selenium2+python自动化23-富文本(自动发帖)解决了富文本上iframe问题,其实没什么特别之处,主要是iframe的切换,本篇讲解通过js的方法处理富文本上iframe的问题 一、加载配置 1.打开博客园写随笔,首先需要登录,这里为了避免透露个人账户信息,我直接加载配置 阅读全文
posted @ 2017-11-08 17:53 小曺 阅读(213) 评论(0) 推荐(0) 编辑
摘要:前言 富文本编辑框是做web自动化最常见的场景,有很多小伙伴遇到了不知道无从下手,本篇以博客园的编辑器为例,解决如何定位富文本,输入文本内容 一、加载配置 1.打开博客园写随笔,首先需要登录,这里为了避免透露个人账户信息,我直接加载配置文件,免登录了。 不懂如何加载配置文件的,看这篇Selenium 阅读全文
posted @ 2017-11-08 17:45 小曺 阅读(265) 评论(0) 推荐(0) 编辑
摘要:前言 最近一些小伙伴,在搞邮箱的事情,小编于是去折腾了一下!总结了一些干货,与大家分享一下!速来,抱大腿,我要开车了! 基本思路就是,使用MIMEMultipart来标示这个邮件是多个部分组成的,然后attach各个部分。如果是附件,则add_header加入附件的声明。在python中,MIME的 阅读全文
posted @ 2017-11-08 17:43 小曺 阅读(279) 评论(0) 推荐(0) 编辑
摘要:前言 在17篇我们讲了excel数据的参数化,有人问了txt数据的参数化该怎么办呢,下面小编为你带你txt数据参数化的讲解 一、以百度搜索为例,自动搜索五次不同的关键字。输入的数据不同从而引起输出结果的变化。 测试脚本: txt文件: open方法以只读方式(r)打开本地txt.txt文件,read 阅读全文
posted @ 2017-11-08 17:42 小曺 阅读(427) 评论(0) 推荐(0) 编辑
摘要:前言 问: Python 获取到Excel一列值后怎么用selenium录制的脚本中参数化,比如对登录用户名和密码如何做参数化? 答:可以使用xlrd读取Excel的内容进行参数化。当然为了便于各位小伙伴们详细的了解,小编一一介绍具体的方法。 一、编写登录用例: Step1:访问http://www 阅读全文
posted @ 2017-11-08 17:41 小曺 阅读(332) 评论(0) 推荐(0) 编辑
摘要:本篇主要介绍单选框和复选框的操作 一、认识单选框和复选框 1.先认清楚单选框和复选框长什么样 2.各位小伙伴看清楚哦,上面的单选框是圆的;下图复选框是方的,这个是业界的标准,要是开发小伙伴把图标弄错了,可以先抽他了。 二、radio和checkbox源码 1.上图的html源码如下,把下面这段复杂下 阅读全文
posted @ 2017-11-08 17:35 小曺 阅读(328) 评论(0) 推荐(0) 编辑
摘要:前言有小伙伴在用脚本启动浏览器时候发现原来下载的插件不见了,无法用firebug在打开的页面上继续定位页面元素,调试起来不方便 。 加载浏览器配置,需要用FirefoxProfile(profile_directory)这个类来加载, profile_directory既为浏览器配置文件的路径地址 阅读全文
posted @ 2017-11-08 17:34 小曺 阅读(226) 评论(0) 推荐(0) 编辑
摘要:前言 selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了。 常见场景: 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的。 这时候需要借助滚动条来拖动屏幕,使被操作的元素显示在当前的屏幕上。 滚动条是无法直接用定位工具来定位的。s 阅读全文
posted @ 2017-11-08 17:33 小曺 阅读(351) 评论(0) 推荐(0) 编辑
摘要:前言 不是所有的弹出框都叫alert,在使用alert方法前,先要识别出到底是不是alert。先认清楚alert长什么样子,下次碰到了,就可以用对应方法解决。 alert\confirm\prompt弹出框操作主要方法有: text:获取文本值 accept() :点击"确认" dismiss() 阅读全文
posted @ 2017-11-08 17:32 小曺 阅读(235) 评论(0) 推荐(0) 编辑
摘要:前言最近由于工作原因,更新慢了一点,今天终于抽出一点时间给大家继续更新selenium系列,学习的脚本不能停止,希望小伙伴能多多支持。 本篇以百度设置下拉选项框为案例,详细介绍select下拉框相关的操作方法。一、认识select 1.打开百度-设置-搜索设置界面,如下图所示 2.箭头所指位置,就是 阅读全文
posted @ 2017-11-08 17:29 小曺 阅读(274) 评论(0) 推荐(0) 编辑
摘要:前言 有很多小伙伴在拿163作为登录案例的时候,发现不管怎么定位都无法定位到,到底是什么鬼呢,本篇详细介绍iframe相关的切换 以http://mail.163.com/登录页面10为案例,详细介绍switch_to_frame使用方法. 一、frame和iframe区别 Frame与Iframe 阅读全文
posted @ 2017-11-08 17:11 小曺 阅读(265) 评论(0) 推荐(0) 编辑
摘要:前言 有些页面的链接打开后,会重新打开一个窗口,对于这种情况,想在新页面上操作,就得先切换窗口了。获取窗口的唯一标识用句柄表示,所以只需要切换句柄,我们就能在多个页面上灵活自如的操作了。 一、认识多窗口 1.打开赶集网:http://bj.ganji.com/,点击招聘求职按钮会发现右边多了一个窗口 阅读全文
posted @ 2017-11-08 17:10 小曺 阅读(416) 评论(0) 推荐(0) 编辑
摘要:前言 前面的几篇都是讲如何定位一个元素,有时候一个页面上有多个对象需要操作,如果一个个去定位的话,比较繁琐,这时候就可以定位一组对象。 webdriver 提供了定位一组元素的方法,跟前面八种定位方式其实一样,只是前面是单数,这里是复数形式:find_elements 本篇拿百度搜索作为案例,从搜索 阅读全文
posted @ 2017-11-08 17:09 小曺 阅读(503) 评论(0) 推荐(0) 编辑
摘要:前言 一、简单操作 1.点击(鼠标左键)页面按钮:click() 2.请空输入框:clear() 3.输入字符串:send_keys() 4.打开测试部落论坛后,点击放大镜搜索图标,一般为了保证输入的正确性,可以先清空下输入框,然后输入搜索关键字 二、submit提交表单 1.在前面百度搜索案例中, 阅读全文
posted @ 2017-11-08 17:09 小曺 阅读(260) 评论(0) 推荐(0) 编辑
摘要:原文转自:http://bbs.chinaunix.net/thread-4154743-1-1.html python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'的解决方法: 1.原因是官网的是python2语法写的,看官 阅读全文
posted @ 2017-11-07 18:25 小曺 阅读(2234) 评论(0) 推荐(0) 编辑
摘要:​# 前言:有时候定位元素的时候,你使出了十八班武艺还是定位不到,怎么办呢?(面试经常会问)那就拿出绝招:点元素所在位置的坐标 tap用法 1.tap是模拟手指点击,一般页面上元素的语法有两个参数,第一个是positions,是list类型最多五个点,duration是持续时间,单位毫秒 坐标定位 阅读全文
posted @ 2017-11-07 17:35 小曺 阅读(632) 评论(0) 推荐(0) 编辑
摘要:swipe介绍 1.查看源码语法,起点和终点四个坐标参数,duration是滑动屏幕持续的时间,时间越短速度越快。默认为None可不填,一般设置500-1000毫秒比较合适。 2.手机从左上角开始为0,横着的是x轴,竖着的是y轴 获取坐标 1.由于每个手机屏幕的分辨率不一样,所以同一个元素在不同手机 阅读全文
posted @ 2017-11-07 17:34 小曺 阅读(1059) 评论(0) 推荐(1) 编辑
摘要:Appium Desktop 原滋原味的官方文档 Appium Desktop是一款用于Mac、Windows和Linux的开源应用,它提供了Appium自动化服务器在一个漂亮灵活的UI中的强大功能。它是一些与appium相关的工具的组合: Appium服务器的图形界面。您可以设置选项、启动/停止服 阅读全文
posted @ 2017-11-07 17:32 小曺 阅读(526) 评论(0) 推荐(0) 编辑
摘要:Appium Desired Capabilities Desired Capabilities 是由 keys 和 values 组成的 JSON 对象。 举个简单例子: { "platformName": "iOS", "platformVersion": "11.0", "deviceName 阅读全文
posted @ 2017-11-07 17:31 小曺 阅读(3084) 评论(0) 推荐(0) 编辑
摘要:前言 学UI自动化首先就是定位页面元素,玩过android版的appium小伙伴应该都知道,appium的windows版自带的Inspector可以定位app上的元素Mac版的appium1.6的版本在UI上有了很大的改变,本篇详细解决如何使用appium1.6定位iOS的app页面元素。 一、S 阅读全文
posted @ 2017-11-07 17:30 小曺 阅读(2044) 评论(0) 推荐(1) 编辑
摘要:前言 做过iOS上app测试的小伙伴应该都知道,普通用户安装app都是从appstore下载安装,安装测试版本的app,一般就是开发给的二维码扫码安装, 或者开发给个.ipa的安装包文件,通过itools安装。对于没有iPhone真机的小伙伴,想在iOS模拟器上安装app测试可不是那么容易的事情。 阅读全文
posted @ 2017-11-07 17:29 小曺 阅读(3560) 评论(0) 推荐(0) 编辑
摘要:前言 本篇安装brew、carthage,解决启动appium时的报错问题,另外安装appium-doctor检查appium的环境 1.brew 2.carthage 3.appium-doctor 一、brew安装 1.brew是一个软件包管理工具,类似于centos下的yum或者ubuntu下 阅读全文
posted @ 2017-11-07 17:28 小曺 阅读(397) 评论(0) 推荐(0) 编辑
摘要:前言 上一篇已经可以启动iOS模拟器上的safari浏览器了,启动app比启动浏览器要复杂一点,本篇以github上的源码为案例详细介绍如何启动iOS模拟器的app 一、clone源码 1.github上Appium的案例源码地址:https://github.com/appium/sample-c 阅读全文
posted @ 2017-11-07 17:23 小曺 阅读(884) 评论(0) 推荐(0) 编辑
摘要:前言 在mac上搭建appium踩了不少坑,先是版本低了,启动后无限重启模拟器。后来全部升级最新版本,就稳稳的了。 环境准备: 1.OS版本号10.12 2.xcode版本号8.3.2 3.appium版本号1.6.4(appium-desktop1.1.0) 4.ios模拟器版本号10.3 一、O 阅读全文
posted @ 2017-11-07 17:22 小曺 阅读(674) 评论(1) 推荐(0) 编辑
摘要:前言 app上webview的页面实际上是启用的chrome浏览器的内核加载的,如何把手机的网页加载到电脑上,电脑的chrome浏览器上有个开发模式DevTools,是可以方便调试的。 一、环境准备 1.手机上装一个chrome浏览器 2.电脑上装chrome浏览器 3.手机连电脑 二、启动adb服 阅读全文
posted @ 2017-11-07 17:21 小曺 阅读(330) 评论(0) 推荐(0) 编辑
摘要:前言 mac上搭建appium+python的环境还是有点复杂的,需要准备的软件 1.nodejs 2.npm 3.cnpm 4.appium 5.pip 6.Appium-Python-Client 一、nodejs安装 1.nodejs下载地址:https://nodejs.org/ 2.下载完 阅读全文
posted @ 2017-11-07 17:21 小曺 阅读(1576) 评论(0) 推荐(0) 编辑
摘要:前言 现在大部分app都是混合式的native+webview,对应native上的元素通过uiautomatorviewer很容易定位到,webview上的元素就无法识别了。 一、识别webview 1.用定位工具查看页面,发现页面上有些区域无法定位到,如下图左边红色区域,只能定位到这个大框框,红 阅读全文
posted @ 2017-11-07 17:19 小曺 阅读(439) 评论(0) 推荐(0) 编辑
摘要:前言 appium定位app上的元素,可以通过id,name.class这些属性定位到 一、id定位 1.appium的id属性也就是通过UI Automator工具查看的resource-id属性 2.如上图的定位,就可以通过id来定位 格式:driver.find_element_by_id(" 阅读全文
posted @ 2017-11-07 17:18 小曺 阅读(358) 评论(0) 推荐(0) 编辑
摘要:前言 有些小伙伴没android手机,这时候可以在电脑上开个模拟器玩玩 一、模拟器配置 1.双击启动AVD Manager,进入配置界面 2.点Create按钮创建 3.配置模拟器基本信息 --AVD Name:设备名称,自己定义一个,用英文(不要用中文) --Device:设备型号,如下图选项意思 阅读全文
posted @ 2017-11-07 17:16 小曺 阅读(687) 评论(0) 推荐(0) 编辑
摘要:前言 学android测试,adb是必学的,有几个常用的指令需要熟练掌握 一、检查设备 1.如何检查手机(或模拟器)是连上电脑的,在cmd输入: >adb devices 2.一定要看到上图红色区域的,设备名称,然后接着是device(如果看到这里是offline,那就是adb端口被占了) 二、安装 阅读全文
posted @ 2017-11-07 17:16 小曺 阅读(299) 评论(0) 推荐(0) 编辑
摘要:前言: Appium Python API全集,不知道哪个大神整理的,这里贴出来分享给大家。 1.contexts contexts(self): Returns the contexts within the current session. 返回当前会话中的上下文,使用后可以识别H5页面的控件 阅读全文
posted @ 2017-11-07 17:14 小曺 阅读(340) 评论(0) 推荐(0) 编辑
摘要:前言 SDK Manager到有哪些东西是必须安装的呢? 一、SDK Manager 1.双击打开SDK Manager界面 2.Tools里面前三个是必须下载的 --Android SDK Tools里面有各种实用工具,如:uiautomatorviewer,uiautomatorviewer,u 阅读全文
posted @ 2017-11-07 17:14 小曺 阅读(322) 评论(1) 推荐(0) 编辑
摘要:前言 在做app自动化过程中会踩很多坑,咱们都是用的中文的app,所以首先要解决中文输入的问题! 本篇通过屏蔽软键盘,绕过手机的软键盘方法,解决中文输入问题。 一、定位搜索 1.打开淘宝点搜索按钮,进入到搜索页面 2.然后定位到搜索框后用sendkeys方法输入“hao”,这里定位元素用第四篇讲的u 阅读全文
posted @ 2017-11-07 17:13 小曺 阅读(469) 评论(0) 推荐(1) 编辑
摘要:前言 在第三篇启动app的时候有这样一行代码driver = webdriver.Remote('http://192.168.1.1:4723/wd/hub', desired_caps),很多小伙伴不知道这个ip和端口哪里来的,于是小编决定写一篇关于这个appium的服务器ip文章! 一般来说a 阅读全文
posted @ 2017-11-07 17:12 小曺 阅读(306) 评论(0) 推荐(0) 编辑
摘要:前言 appium Inspector从入门到放弃!反正你都打开了,那就看下为什么要放弃吧! Appium Inspector是appium自带的一个元素定位工具,上一篇介绍了如何使用uiautomatorviewer进行元素定位。本篇学习Appium Inspector是如何定位的。 一、设置ap 阅读全文
posted @ 2017-11-07 17:11 小曺 阅读(294) 评论(0) 推荐(0) 编辑
摘要:前言 环境搭建好了,下一步元素定位,元素定位本篇主要介绍如何使用uiautomatorviewer,通过定位到页面上的元素,然后进行相应的点击等操作. uiautomatorviewer是android-sdk自带的一个元素定位工具,非常简单好用,使用uiautomatorviewer,你可以检查一 阅读全文
posted @ 2017-11-07 17:10 小曺 阅读(234) 评论(0) 推荐(0) 编辑
摘要:前言 前面两篇环境已经搭建好了,接下来就是需要启动APP,如何启动app呢?首先要获取包名,然后获取launcherActivity。获取这两个关键东西的方法很多,这里就不一一多说,小伙伴们可以各显神通。小编这里主要给大家推荐一个sdk自带的实用工具aapt. aapt即Android Asset 阅读全文
posted @ 2017-11-07 17:09 小曺 阅读(404) 评论(0) 推荐(0) 编辑
摘要:前言 上一篇android测试开发环境已经准备好, 接下来就是appium的环境安装了。环境安装过程中切勿浮躁,按照步骤一个个来。 环境装好后,可以用真机连电脑,也可以用android-sdk里面的模拟器(当然这个模拟器不是很好用),我一般喜欢真机,真机比较快。 一、必备软件安装 小编的环境是Win 阅读全文
posted @ 2017-11-07 17:08 小曺 阅读(197) 评论(0) 推荐(0) 编辑
摘要:前言 appium可以说是做app最火的一个自动化框架,它的主要优势是支持android和ios,另外脚本语言也是支持java和Python。小编擅长Python,所以接下来的教程是appium+python的实例。 学习appium最大的难处在于环境的安装,80%的人死于环境安装,然后就没然后了, 阅读全文
posted @ 2017-11-07 17:07 小曺 阅读(244) 评论(0) 推荐(0) 编辑
摘要:前言 大部分人在使用selenium定位元素时,用的是xpath定位,因为xpath基本能解决定位的需求。css定位往往被忽略掉了,其实css定位也有它的价值,css定位更快,语法更简洁。这一篇css的定位方法,主要是对比上一篇的xpath来的,基本上xpath能完成的,css也可以做到。两篇对比学 阅读全文
posted @ 2017-11-07 17:05 小曺 阅读(371) 评论(0) 推荐(0) 编辑
摘要:前言 前面几篇都是讲一些基础的定位方法,没具体的案例,小伙伴看起来比较枯燥,有不少小伙伴给小编提建议以后多出一些具体的案例。本篇就是拿部落论坛作为测试项目,写一个简单的登录测试脚本。 在写登录脚本的时候呢,先要保证流程能跑起来,然后才是去想办法优化代码,让自己的脚本看起来更舒服,具有良好的可读性。 阅读全文
posted @ 2017-11-07 17:05 小曺 阅读(302) 评论(0) 推荐(0) 编辑
摘要:前言 福利来了,对于用火狐浏览器的小伙伴们,你还在为定位元素而烦恼嘛? 上古神器Selenium Builder来啦,哪里不会点哪里,妈妈再也不用担心我的定位元素问题啦!(但是也不是万能,基本上都能覆盖到)一、安装Selenium Builder在火狐浏览器的附加组件中搜索添加Selenium Bu 阅读全文
posted @ 2017-11-07 17:04 小曺 阅读(233) 评论(0) 推荐(0) 编辑
摘要:前言 在上一篇简单的介绍了用工具查看目标元素的xpath地址,工具查看比较死板,不够灵活,有时候直接复制粘贴会定位不到。这个时候就需要自己手动的去写xpath了,这一篇详细讲解xpath的一些语法。 什么是xpath呢? 官方介绍:XPath即为XML路径语言,它是一种用来确定XML1(标准通用标记 阅读全文
posted @ 2017-11-07 17:03 小曺 阅读(261) 评论(0) 推荐(0) 编辑
摘要:前言 自动化只要掌握四步操作:获取元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告。本篇主要讲如何用firefox辅助工具进行元素定位。元素定位在这四个环节中是至关重要的,如果说按学习精力分配的话,元素定位占70%;操作元素10%,获取返回结果10%;断言10%。 阅读全文
posted @ 2017-11-07 17:02 小曺 阅读(298) 评论(0) 推荐(0) 编辑
摘要:前言前面已经把环境搭建好了,这从这篇开始,正式学习selenium的webdriver框架。我们平常说的 selenium自动化,其实它并不是类似于QTP之类的有GUI界面的可视化工具,我们要学的是webdriver框架的API。本篇主要讲如何用Python调用webdriver框架的API,对浏览 阅读全文
posted @ 2017-11-07 17:01 小曺 阅读(301) 评论(0) 推荐(0) 编辑
摘要:前言 在写脚本之前,先要找个顺手的写脚本工具。python是一门解释性编程语言,所以一般把写python的工具叫解释器。写python脚本的工具很多,小编这里就不一一列举的,只要自己用着顺手就可以的,如果你还没有选好解释器,小编这里推荐pycharm。 在安装pycharm后,有一些小伙伴不会破解, 阅读全文
posted @ 2017-11-07 17:00 小曺 阅读(305) 评论(0) 推荐(0) 编辑
摘要:一、pip出现异常 有一小部分童鞋在打开cmd输入pip后出现下面情况:Did not provide a commandDid not provide a command?这是什么鬼?正常情况应该是酱紫 二、解决办法:1.pip是一个.exe的可执行文件,在cmd输入pip.exe就可以解决了2. 阅读全文
posted @ 2017-11-07 16:59 小曺 阅读(228) 评论(0) 推荐(0) 编辑
摘要:selenium版本安装后启动Firefox出现异常:'geckodriver' executable needs to be in PATH selenium默默的升级到了3.0,然而网上的教程都是基于selenium2的,最近有不少小伙伴踩坑了,决定有必要出这一篇,帮助刚入门的小伙伴们解决好环境 阅读全文
posted @ 2017-11-07 16:58 小曺 阅读(276) 评论(0) 推荐(0) 编辑
摘要:前言 目前selenium版本已经升级到3.0了,网上的大部分教程是基于2.0写的,所以在学习前先要弄清楚版本号,这点非常重要。本系列依然以selenium2为基础,目前selenium3坑比较多,暂时没精力去研究,后续会出相关教程。 一、selenium简介 Selenium 是用于测试 Web 阅读全文
posted @ 2017-11-07 16:57 小曺 阅读(354) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/appium/default.html?page=2 前言 环境搭建好了,下一步元素定位,元素定位本篇主要介绍如何使用uiautomatorviewer,通过定位到页面上的元素,然后进行相 阅读全文
posted @ 2017-11-06 14:57 小曺 阅读(240) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/appium/default.html?page=2 前言 前面两篇环境已经搭建好了,接下来就是需要启动APP,如何启动app呢?首先要获取包名,然后获取launcherActivity。 阅读全文
posted @ 2017-11-06 14:56 小曺 阅读(525) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/appium/default.html?page=2 前言 上一篇android测试开发环境已经准备好, 接下来就是appium的环境安装了。环境安装过程中切勿浮躁,按照步骤一个个来。 环 阅读全文
posted @ 2017-11-06 14:55 小曺 阅读(218) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/appium/default.html?page=2 前言 appium可以说是做app最火的一个自动化框架,它的主要优势是支持android和ios,另外脚本语言也是支持java和Pyt 阅读全文
posted @ 2017-11-06 14:54 小曺 阅读(243) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/python%E6%8E%A5%E5%8F%A3%E8%87%AA%E5%8A%A8%E5%8C%96/ 前言 有很多小伙伴吵着要完整的项目源码,完整的项目属于公司内部的代码,这个是没法分 阅读全文
posted @ 2017-11-06 14:19 小曺 阅读(333) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/python%E6%8E%A5%E5%8F%A3%E8%87%AA%E5%8A%A8%E5%8C%96/ 前言 有些登录不是用cookie来验证的,是用token参数来判断是否登录。 to 阅读全文
posted @ 2017-11-06 14:18 小曺 阅读(342) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/python%E6%8E%A5%E5%8F%A3%E8%87%AA%E5%8A%A8%E5%8C%96/ 前言 前面一篇实现了参数的关联,那种只是记流水账的完成功能,不便于维护,也没什么可 阅读全文
posted @ 2017-11-06 14:17 小曺 阅读(722) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/python%E6%8E%A5%E5%8F%A3%E8%87%AA%E5%8A%A8%E5%8C%96/ 前言 本来最新的requests库V2.13.0是支持https请求的,但是一般写 阅读全文
posted @ 2017-11-06 14:17 小曺 阅读(697) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/python%E6%8E%A5%E5%8F%A3%E8%87%AA%E5%8A%A8%E5%8C%96/ 前言 我们用自动化发帖之后,要想接着对这篇帖子操作,那就需要用参数关联了,发帖之后 阅读全文
posted @ 2017-11-06 14:16 小曺 阅读(736) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/python%E6%8E%A5%E5%8F%A3%E8%87%AA%E5%8A%A8%E5%8C%96/ 前言 某屌丝男A鼓起勇气向女神B打电话表白,女神B是个心机婊觉得屌丝男A是好人,不 阅读全文
posted @ 2017-11-06 14:15 小曺 阅读(2287) 评论(1) 推荐(1) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/python%E6%8E%A5%E5%8F%A3%E8%87%AA%E5%8A%A8%E5%8C%96/ 前言 有些post的请求参数是json格式的,这个前面第二篇post请求里面提到过 阅读全文
posted @ 2017-11-06 14:14 小曺 阅读(306) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/python%E6%8E%A5%E5%8F%A3%E8%87%AA%E5%8A%A8%E5%8C%96/ 前言 有些登录的接口会有验证码:短信验证码,图形验证码等,这种登录的话验证码参数可 阅读全文
posted @ 2017-11-06 14:13 小曺 阅读(288) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/python%E6%8E%A5%E5%8F%A3%E8%87%AA%E5%8A%A8%E5%8C%96/ 前言 requests模块,也就是老污龟,为啥叫它老污龟呢,因为这个官网上的log 阅读全文
posted @ 2017-11-06 14:12 小曺 阅读(345) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/python%E6%8E%A5%E5%8F%A3%E8%87%AA%E5%8A%A8%E5%8C%96/ 前言 上一篇模拟登录博客园,但这只是第一步,一般登录后,还会有其它的操作,如发帖, 阅读全文
posted @ 2017-11-06 14:12 小曺 阅读(773) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/beautifulsoup4/ 前言 很多时候我们无法直接定位到某个元素,我们可以先定位它的父元素,通过父元素来找子元素就比较容易 一、子节点 1.以博客园首页的摘要为例:<div cla 阅读全文
posted @ 2017-11-06 14:10 小曺 阅读(6072) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/beautifulsoup4/ 前言 本篇手把手教大家如何爬取网站上的图片,并保存到本地电脑 一、目标网站 1.随便打开一个风景图的网站:http://699pic.com/sousuo- 阅读全文
posted @ 2017-11-06 14:09 小曺 阅读(291) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/beautifulsoup4/ 前言 本篇详细介绍beautifulsoup4的功能,从最基础的开始讲起,让小伙伴们都能入门 一、读取HTML页面 1.先写一个简单的html页面,把以下内 阅读全文
posted @ 2017-11-06 14:08 小曺 阅读(186) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/beautifulsoup4/ 前言 以博客园为例,爬取我的博客上首页的发布时间、标题、摘要,本篇先小试牛刀,先了解下它的强大之处,后面讲beautifulsoup4的详细功能。 一、安装 阅读全文
posted @ 2017-11-06 14:07 小曺 阅读(211) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/robotframework/ 前言 有时候一个页面上有多个对象需要操作,如果一个个去定位的话,比较繁琐,这时候就可以定位一组对象。Selenium2library提供了Get Webel 阅读全文
posted @ 2017-11-06 14:01 小曺 阅读(694) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/robotframework/ 前言 RF系列主要以案例为主,关键字不会的可以多按按F5,里面都有很详细的介绍,要是纯翻译的话,就没太大意义了,因为小编本来英语就很差哦! 前面seleni 阅读全文
posted @ 2017-11-06 13:59 小曺 阅读(425) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/robotframework/ 前言 Robot Framework是一款python编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可 阅读全文
posted @ 2017-11-06 13:58 小曺 阅读(297) 评论(0) 推荐(1) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/robotframework/ 前言 有时候一个页面上有多个对象需要操作,如果一个个去定位的话,比较繁琐,这时候就可以定位一组对象。Selenium2library提供了Get Webel 阅读全文
posted @ 2017-11-06 13:58 小曺 阅读(452) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/unittest/ 前言 在执行用例过程中由于是无人值守的,用例运行报错的时候,我们希望能对当前屏幕截图,留下证据。 在写用例的时候,最后一步是断言,可以把截图的动作放在断言这里,那么如何 阅读全文
posted @ 2017-11-06 13:57 小曺 阅读(358) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/unittest/ 前言 在设计用例的时候,有些用例只是参数数据的输入不一样,比如登录这个功能,操作过程但是一样的。如果用例重复去写操作过程会增加代码量,对应这种多组数据的测试用例,可以用 阅读全文
posted @ 2017-11-06 13:56 小曺 阅读(237) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/unittest/ 前言 在测试用例中,执行完测试用例后,最后一步是判断测试结果是pass还是fail,自动化测试脚本里面一般把这种生成测试结果的方法称为断言(assert)。 用unit 阅读全文
posted @ 2017-11-06 13:55 小曺 阅读(190) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/unittest/ 前言 前面讲到unittest里面setUp可以在每次执行用例前执行,这样有效的减少了代码量,但是有个弊端,比如打开浏览器操作,每次执行用例时候都会重新打开,这样就会浪 阅读全文
posted @ 2017-11-06 13:54 小曺 阅读(201) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/unittest/ 前言 批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的。 unittest里面是不能生成html格式报告的,需要 阅读全文
posted @ 2017-11-06 13:53 小曺 阅读(196) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/unittest/ 前言 很多初学者在使用unittest框架时候,不清楚用例的执行顺序到底是怎样的。对测试类里面的类和方法分不清楚,不知道什么时候执行,什么时候不执行。 本篇通过最简单案 阅读全文
posted @ 2017-11-06 13:52 小曺 阅读(210) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/unittest/ 前言 我们在写用例的时候,单个脚本的用例好执行,那么多个脚本的时候,如何批量执行呢?这时候就需要用到unittet里面的discover方法来加载用例了。 加载用例后, 阅读全文
posted @ 2017-11-06 13:52 小曺 阅读(181) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/unittest/ 前言 熟悉java的应该都清楚常见的单元测试框架Junit和TestNG,这个招聘的需求上也是经常见到的。python里面也有单元测试框架-unittest,相当于是一 阅读全文
posted @ 2017-11-06 13:51 小曺 阅读(132) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/unittest/ 前言 登录这个场景在写用例的时候经常会有,我们可以把登录封装成一个方法,然后把账号和密码参数化,这样以后用的登录的时候,只需调用这个方法就行了 一、登录方法 1.把输入 阅读全文
posted @ 2017-11-06 13:50 小曺 阅读(427) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/unittest/ 这样一一分析下来,我们对unittest 框架有了初步的了解。运行脚本,因为引入了unittest 框架, 所以控制台输出了用例的执行个数、时间以及是否ok 等信息。 阅读全文
posted @ 2017-11-06 13:48 小曺 阅读(312) 评论(0) 推荐(0) 编辑
摘要:技术站点 Hacker News:非常棒的针对编程的链接聚合网站 Programming reddit:同上 MSDN:微软相关的官方技术集中地,主要是文档类 infoq:企业级应用,关注软件开发领域 OSChina:开源技术社区,开源方面做的不错哦 cnblogs,51cto,csdn:常见的技术 阅读全文
posted @ 2017-11-06 13:43 小曺 阅读(713) 评论(0) 推荐(1) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/git/ 前言 前面一篇已经实现首次上传代码到github了,迈出了装逼第一步,本篇继续讲如何把本地更新的代码同步更新到github上 一、clone代码 1.把大神的代码clone到本地 阅读全文
posted @ 2017-11-06 13:40 小曺 阅读(569) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/git/ 前言 不会使用github都不好意思说自己是码农,github作为一个开源的代码仓库管理平台,我们可以把自己的代码放到github上,分享给小伙伴,自己也能随时随地同步更新代码。 阅读全文
posted @ 2017-11-06 13:39 小曺 阅读(168) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/js/ 前言 有时候元素明明已经找到了,运行也没报错,点击后页面没任何反应。这种问题遇到了,是比较头疼的,因为没任何报错,只是click事件失效了。 本篇用2种方法解决这种诡异的点击事件失 阅读全文
posted @ 2017-11-06 13:22 小曺 阅读(315) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-小T 原文地址:http://blog.csdn.net/real_tino/article/details/59068827 我们在浏览网页时经常会碰到各种花样的弹窗,在做UI自动化测试的时候势必要处理这些弹窗,这里就介绍一下目前前端界两种弹窗的处理方法。 一、alert弹窗 阅读全文
posted @ 2017-11-06 13:20 小曺 阅读(441) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/js/ 前言 在打开页面上链接的时候,经常会弹出另外一个窗口(多窗口情况前面这篇有讲解:Selenium2+python自动化13-多窗口、句柄(handle)),这样在多个窗口之间来回切 阅读全文
posted @ 2017-11-06 13:19 小曺 阅读(237) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/js/ 前言 前面有篇专门用js解决了浏览器滚动条的问题,生活总是多姿多彩,有的滚动条就在页面上,这时候又得仰仗js大哥来解决啦。 一、内嵌滚动条 1.下面这张图就是内嵌div带有滚动条的 阅读全文
posted @ 2017-11-06 13:18 小曺 阅读(175) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/js/ 前言 上一篇Selenium2+python自动化23-富文本(自动发帖)解决了富文本上iframe问题,其实没什么特别之处,主要是iframe的切换,本篇讲解通过js的方法处理富 阅读全文
posted @ 2017-11-06 13:17 小曺 阅读(270) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/js/ 前言 日历控件是web网站上经常会遇到的一个场景,有些输入框是可以直接输入日期的,有些不能,以我们经常抢票的12306网站为例,详细讲解如何解决日历控件为readonly属性的问题 阅读全文
posted @ 2017-11-06 13:17 小曺 阅读(762) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/js/ 前言 selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了。 常见场景: 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元 阅读全文
posted @ 2017-11-06 13:15 小曺 阅读(180) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/fiddler/ 前言 在点Actions时候出现Export Failed:The root certificate could not be located.最近有很多小伙伴在fidd 阅读全文
posted @ 2017-11-06 10:42 小曺 阅读(2367) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/fiddler/ 前言 在使用fiddler抓包的时候,查看请求类型get和post每次只有点开该请求,在Inspectors才能查看get和post请求,不太方便。于是可以在会话框直接添 阅读全文
posted @ 2017-11-06 10:41 小曺 阅读(204) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/fiddler/ 前言 为什么要保存会话呢?举个很简单的场景,你在上海测试某个功能接口的时候,发现了一个BUG,而开发这个接口的开发人员是北京的一家合作公司。你这时候给对方开发提bug, 阅读全文
posted @ 2017-11-06 10:40 小曺 阅读(209) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/fiddler/ 前言 先给大家讲一则小故事,在我们很小的时候是没有手机的,那时候跟女神聊天都靠小纸条。某屌丝A男对隔壁小王的隔壁女神C倾慕已久,于是天天小纸条骚扰,无奈中间隔着一个小王, 阅读全文
posted @ 2017-11-06 10:39 小曺 阅读(267) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/fiddler/ 前言上一篇讲过get请求的参数都在url里,post的请求相对于get请求多了个body部分,本篇就详细讲解下body部分参数的几种形式。 一、body数据类型 常见的p 阅读全文
posted @ 2017-11-06 10:38 小曺 阅读(426) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/fiddler/ 前言 上一篇介绍了Composer的功能,可以模拟get和post请求,get请求有些是不带参数的,这种比较容易,直接放到url地址栏就行。有些get请求会带有参数,本篇 阅读全文
posted @ 2017-11-06 10:37 小曺 阅读(300) 评论(0) 推荐(1) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/p/6754560.html 前言 Fiddler最大的优势在于抓包,我们大部分使用的功能也在抓包的功能上,fiddler做接口测试也是非常方便的。 对应没有接口测试文档的时候,可以直接抓完包后, 阅读全文
posted @ 2017-11-06 10:36 小曺 阅读(247) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/p/6719717.html 前言 前面两篇关于Fiddler抓包的一些基本配置,配置完之后就可以抓到我们想要的数据了,接下来就是如何去分析这些数据。 本篇以博客园的请求为例,简单分析get与po 阅读全文
posted @ 2017-11-06 10:35 小曺 阅读(284) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/p/6719717.html 前言 本篇简单的介绍下fiddler界面的几块区域,以及各自区域到底是干什么用的,以便于各好的掌握这个工具 一、工具简介 1.第一块区域是设置菜单,这个前面2篇都有介 阅读全文
posted @ 2017-11-06 10:35 小曺 阅读(275) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/p/6582437.html 前言 fiddler抓手机app的请求,估计大部分都会,但是如何只抓来自app的请求呢? 把来自pc的请求过滤掉,因为请求太多,这样会找不到重要的信息了。 环境准备: 阅读全文
posted @ 2017-11-06 10:34 小曺 阅读(241) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/p/6538021.html 前言 fiddler是一个很好的抓包工具,默认是抓http请求的,对于pc上的https请求,会提示网页不安全,这时候需要在浏览器上安装证书。 一、网页不安全 1.用 阅读全文
posted @ 2017-11-06 10:33 小曺 阅读(284) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/python/ 前几天有人在群里给小编出了个数学题: 假设你有无限数量的邮票,面值分别为6角,7角,8角,请问你最大的不可支付邮资是多少元? 小编掰着手指头和脚趾头算了下,答案是:1.7元 阅读全文
posted @ 2017-11-06 10:32 小曺 阅读(1457) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/python/ 前言 面试的时候经常有面试官喜欢问如何进行冒泡排序?这个问题相信能难倒一批英雄好汉,本篇就详细讲解如何用python进行冒泡排序。 一、基本原理 1.概念: 冒泡排序(Bu 阅读全文
posted @ 2017-11-06 10:31 小曺 阅读(199) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/python/ 前言 讲真!小编不管看什么电影(大的、小的),不管什么电视剧,小编都没买过会员,也没花过一分钱。看到那些在群里各种卖视频的,小编都不屑一顾。 今天小编分享绝门秘籍,pyth 阅读全文
posted @ 2017-11-06 10:30 小曺 阅读(1037) 评论(0) 推荐(0) 编辑
摘要:本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/python/ 前言 本篇总结了QQ邮箱和163邮箱发送邮件,邮件包含html中文和附件,可以发给多个收件人,专治各种不行,总之看完这篇麻麻再也不用担心我的邮件收不到了。 以下代码兼容py 阅读全文
posted @ 2017-11-06 10:29 小曺 阅读(291) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示