摘要:
转至博客:上海-悠悠 前言 上一篇是点弹出框上的按钮去保存文件,本篇介绍一种更加优雅的方法,加载Firefox和Chrome的配置文件,不弹出询问框后台下载。 一、FirefoxProfile 1.点下载的时候,如下图,如果不想让它弹出这个询问框,可以加载firefox的配置文件隐藏起来 2.设置各 阅读全文
posted @ 2017-11-10 17:57
小曺
阅读(1759)
评论(0)
推荐(0)
摘要:
转至博客:上海-悠悠 前言前一篇autoit实现文件上传打包成.exe可执行文件后,每次只能传固定的那个图片,我们实际测试时候希望传不同的图片。这样每次调用的时候,在命令行里面加一个文件路径的参数就行。一、命令行参数1.参数化传入的参数,可以通过autoit的命令行参数:``` myProg.exe 阅读全文
posted @ 2017-11-10 17:56
小曺
阅读(1976)
评论(0)
推荐(0)
摘要:
转至博客:上海-悠悠 前言 在jenkins上展示html的报告,需要添加一个HTML Publisher plugin插件,把生成的html报告放到指定文件夹,这样就能用jenkins去读出指定文件夹的报告了。 一、构建后操作 1.前面执行完测试用例后,可以用“添加构建后操作步骤”,读出html报 阅读全文
posted @ 2017-11-10 17:55
小曺
阅读(9446)
评论(1)
推荐(0)
摘要:
转至博客:上海-悠悠 前言 跑自动化用例每次用手工点击jenkins出发自动化用例太麻烦了,我们希望能每天固定时间跑,这样就不用管了,坐等收测试报告结果就行。 一、定时构建语法 * * * * * (五颗星,中间用空格隔开) 第一颗*表示分钟,取值0~59第二颗*表示小时,取值0~23第三颗*表示一 阅读全文
posted @ 2017-11-10 17:54
小曺
阅读(62763)
评论(2)
推荐(4)
摘要:
转至博客:上海-悠悠 前言 在发post请求的时候,有时候body部分要传data参数,有时候body部分又要传json参数,那么问题来了:到底什么时候该传json,什么时候该传data? 一、识别json参数 1.在前面1.8章节讲过,post请求的body通常有四种类型,最常见的就是json格式 阅读全文
posted @ 2017-11-10 17:52
小曺
阅读(1893)
评论(0)
推荐(0)
摘要:
转至博客:上海-悠悠 前言 我们在跑自动化项目的时候,希望有单独的测试机能跑自动化项目,并且能集成到jenkins上构建任务。如果公司已经有jenkins环境了,那无需重新搭建。 只需在现有的平台基础上,新增一个slave节点管理就行了。 一、管理节点 1.打开需要配置的测试电脑(一定要在需要配置的 阅读全文
posted @ 2017-11-10 17:52
小曺
阅读(2236)
评论(0)
推荐(0)
摘要:
转至博客:上海-悠悠 一、加载Chrome配置 chrome加载配置方法,只需改下面一个地方,username改成你电脑的名字(别用中文!!!) '--user-data-dir=C:\Users\username\AppData\Local\Google\Chrome\User Data' # c 阅读全文
posted @ 2017-11-10 17:51
小曺
阅读(750)
评论(0)
推荐(0)
摘要:
转至博客:上海-悠悠 前言 不少小伙伴问非input标签如何上传文档,这个本身就是一坑,无奈很多小伙伴非要跳坑里去,那就介绍一个非主流的上传文件方法吧,用第三方库SendKeys. (本篇基于python2.7版本的,python3的安装SendKeys包自己想办法吧) 一、SendKeys安装 1 阅读全文
posted @ 2017-11-10 17:50
小曺
阅读(1196)
评论(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
小曺
阅读(4577)
评论(4)
推荐(0)
摘要:
转至博客:上海-悠悠 前言 元素定位可以说是学自动化的小伙伴遇到的一道门槛,学会了定位也就打通了任督二脉,前面分享过selenium的18般武艺,再加上五种js的定位大法。 这些还不够的话,今天再分享一个定位神器jquery,简直逆天了! 一、jquery搜索元素 1.按F12进控制台 2.点全部按 阅读全文
posted @ 2017-11-10 17:49
小曺
阅读(1443)
评论(0)
推荐(0)
摘要:
前言 脚本运行的时候,有时候不知道用例的执行情况,这时候可以加入日志,这样出现问题后方便查阅,也容易排查哪些用例执行了,哪些没有执行。 一、封装logging模块 1.关于logging日志的介绍,我这里就不详细讲解了,主要有两大功能,一个是控制台的输出,一个是保存到本地文件 2.先封装loggin 阅读全文
posted @ 2017-11-10 17:48
小曺
阅读(3197)
评论(0)
推荐(0)
摘要:
前言: 有些网站的登录方式跟前面讲的博客园和token登录会不一样,把csrfToken放到cookie里,登录前后cookie是没有任何变化的,这种情况下如何绕过前端的验证码登录呢? 一、登录前后对比 1.如果登录页面有图形验证码,这种我们一般都是绕过登录的方式,如下图通过抓包分析,首先不输入密码 阅读全文
posted @ 2017-11-10 17:47
小曺
阅读(2294)
评论(0)
推荐(0)
摘要:
前言: 前面登录博客园的是传json参数,有些登录不是传json的,如jenkins的登录,本篇以jenkins登录为案例,传data参数。 一、登录jenkins抓包 1.登录jenkins,输入账号和密码 2.fiddler抓包 3.这个body参数并不是json格式,是key=value格式, 阅读全文
posted @ 2017-11-10 17:46
小曺
阅读(2458)
评论(0)
推荐(0)
摘要:
前言 有时候一些业务的功能涉及到多个系统,需要在web系统1打开造一些数据,然后用到某些参数是动态生成的,需要调用web系统2里面的参数。 举个简单例子:在做某些业务的时候,需要手机短信验证码,我不可能去搞个手机连着电脑吧,那样太傻,我们的目的是获取短信验证码,短信验证码都有短信平台去查询。 当然能 阅读全文
posted @ 2017-11-10 17:45
小曺
阅读(5558)
评论(0)
推荐(0)
摘要:
前言 当测试用例写完后,有些模块有改动时候,会影响到部分用例的执行,这个时候我们希望暂时跳过这些用例。 或者前面某个功能运行失败了,后面的几个用例是依赖于这个功能的用例,如果第一步就失败了,后面的用例也就没必要去执行了,直接跳过就行,节省用例执行时间。 一、skip装饰器 skip装饰器一共有四个 阅读全文
posted @ 2017-11-10 17:44
小曺
阅读(2842)
评论(0)
推荐(0)
摘要:
前言 PhantomJS是一个没有界面的浏览器,本质上是它其实也就是一个浏览器,只是不在界面上展示。 PhantomJS非常适合爬虫方面,很多玩爬虫的都喜欢用这个浏览器。 一、PhantomJS环境准备 1.先下载PhantomJS浏览器,下载地址:http://phantomjs.org/down 阅读全文
posted @ 2017-11-10 17:43
小曺
阅读(309)
评论(0)
推荐(0)
摘要:
前言: 装饰器其实就是一个以函数作为参数并返回一个替换函数的可执行函数 上一篇讲到用装饰器解决异常后自动截图,不过并没有与unittest结合,这篇把截图的装饰器改良了下,可以实现用例执行失败自动截图。 一、不带变量的装饰器1.参考资料:http://www.artima.com/weblogs/v 阅读全文
posted @ 2017-11-10 17:42
小曺
阅读(1879)
评论(0)
推荐(0)
摘要:
前言 python2用HTMLTestRunner生成测试报告时,有中文输出情况会出现乱码,这个主要是编码格式不统一,改下编码格式就行。 下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html 一、中文乱码 1.测试报告中,msg自定义异常内 阅读全文
posted @ 2017-11-10 17:42
小曺
阅读(1246)
评论(0)
推荐(0)
摘要:
前言 对于用例失败截图,很多小伙伴都希望在用例执行失败的时候能自动截图,想法是很好的,实现起来并不是那么容易。 这里分享下我的一些思路,当然目前还没找到完美的解决方案,我的思路是用装饰器去解决,希望有高手已经实现的可以指点下。 一、函数作为形参 1.函数的参数也可以是另外一个函数,也就是说传的参数不 阅读全文
posted @ 2017-11-10 17:41
小曺
阅读(1035)
评论(0)
推荐(0)
摘要:
前言 本篇总结了几种js常用的定位元素方法,并用js点击按钮,对input输入框输入文本 一、以下总结了5种js定位的方法 除了id是定位到的是单个element元素对象,其它的都是elements返回的是list对象 1.通过id获取 document.getElementById(“id”) 2 阅读全文
posted @ 2017-11-10 17:39
小曺
阅读(5792)
评论(0)
推荐(0)
摘要:
前言 selenium截取全图小伙伴们都知道,曾经去面试的时候,面试官问:如何截图某个元素的图?不要全部的,只要某个元素。。。小编一下子傻眼了,苦心人,天不负,终于找到解决办法了。 selenium截图 1.selenium提供了几个截取全屏的方法 get_screenshot_as_file(se 阅读全文
posted @ 2017-11-10 16:41
小曺
阅读(471)
评论(0)
推荐(0)
摘要:
前言 文件下载时候会弹出一个下载选项框,这个弹框是定位不到的,有些元素注定定位不到也没关系,就当没有鼠标,我们可以通过键盘的快捷键完成操作。 SendKeys库是专业的处理键盘事件的,所以这里需要用SendKeys解决 一、下载场景 1.当点到下载按钮时候,会弹出如下页面 2.如果想点“保存文件”按 阅读全文
posted @ 2017-11-10 16:40
小曺
阅读(827)
评论(0)
推荐(0)
摘要:
优化html报告 为了满足小伙伴的各种变态需求,为了装逼提升逼格,为了让报告更加高大上,测试报告做了以下优化: 测试报告中文显示,优化一些断言失败正文乱码问题 新增错误和失败截图,展示到html报告里 优化点击截图放大不清晰问题 增加饼图统计 失败后重试功能 兼容python2.x 和3.x 报告效 阅读全文
posted @ 2017-11-10 16:40
小曺
阅读(1003)
评论(0)
推荐(0)
摘要:
前言 经常有人在群里反馈,明明代码一样的啊,为什么别人的能出报告,我的出不了报告;为什么别人运行结果跟我的不一样啊。。。 这种问题先检查代码,确定是一样的,那就是运行姿势不对了,一旦导入unittest模块,pycharm会自动识别以unittest的姿势去运行了。 一、unittest运行单个用例 阅读全文
posted @ 2017-11-10 16:39
小曺
阅读(310)
评论(0)
推荐(0)
摘要:
前言 关于非input文件上传,点上传按钮后,这个弹出的windows的控件了,已经跳出三界之外了,不属于selenium的管辖范围(selenium不是万能的,只能操作web上元素)。autoit工具处理windows的控件窗口是专业的,所以这个需借助AutoIt来解决了。 一、环境准备 1.可以 阅读全文
posted @ 2017-11-10 16:39
小曺
阅读(572)
评论(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
小曺
阅读(319)
评论(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
小曺
阅读(1075)
评论(1)
推荐(0)
摘要:
前言 到unittest这里基本上可以搭建一个简易的项目框架了,我们可以用一条run_main.py脚本去控制执行所有的用例,并生成报告,发送邮件一系列的动作 一、新建工程 1.打开pycharm左上角File>New Project,在Location位置输入项目名称:D:\test\test_b 阅读全文
posted @ 2017-11-10 16:36
小曺
阅读(192)
评论(0)
推荐(0)
摘要:
前言 selenium2启动Chrome浏览器是需要安装驱动包的,但是不同的Chrome浏览器版本号,对应的驱动文件版本号又不一样,如果版本号不匹配,是没法启动起来的。 一、Chrome遇到问题 1.如果在启动chrome浏览器时候,出现如下界面,无法打开网址,那么首先恭喜你,踩到了坑,接下来的内容 阅读全文
posted @ 2017-11-10 16:01
小曺
阅读(886)
评论(0)
推荐(0)
摘要:
前言 在执行用例过程中由于是无人值守的,用例运行报错的时候,我们希望能对当前屏幕截图,留下证据。 在写用例的时候,最后一步是断言,可以把截图的动作放在断言这里,那么如何在断言失败后截图呢? 一、截图方法 1.get_screenshot_as_file(self, filename) --这个方法是 阅读全文
posted @ 2017-11-10 13:54
小曺
阅读(405)
评论(0)
推荐(0)
摘要:
前言 当登录的账号有多个的时候,我们一般用excel存放测试数据,本节课介绍,python读取excel方法,并保存为字典格式。 一、环境准备 1.先安装xlrd模块,打开cmd,输入pip install xlrd在线安装 >>pip install xlrd 二、基本操作 1.exlce基本操作 阅读全文
posted @ 2017-11-10 13:53
小曺
阅读(250)
评论(0)
推荐(0)
摘要:
前言 在设计用例的时候,有些用例只是参数数据的输入不一样,比如登录这个功能,操作过程但是一样的。如果用例重复去写操作过程会增加代码量,对应这种多组数据的测试用例,可以用数据驱动设计模式,一组数据对应一个测试用例,用例自动加载生成。 一、环境准备 1.安装ddt模块,打开cmd输入pip instal 阅读全文
posted @ 2017-11-10 13:53
小曺
阅读(185)
评论(0)
推荐(0)
摘要:
前言 在定位元素的时候,经常会遇到各种异常,为什么会发生这些异常,遇到异常又该如何处理呢? 本篇通过学习selenium的exceptions模块,了解异常发生的原因。 一、发生异常 1.打开博客首页,定位“新随笔”元素,此元素id="blog_nav_newpost" 2.为了故意让它定位失败,我 阅读全文
posted @ 2017-11-10 13:51
小曺
阅读(2278)
评论(0)
推荐(1)
摘要:
前言 在测试用例中,执行完测试用例后,最后一步是判断测试结果是pass还是fail,自动化测试脚本里面一般把这种生成测试结果的方法称为断言(assert)。 用unittest组件测试用例的时候,断言的方法还是很多的,下面介绍几种常用的断言方法:assertEqual、assertIn、assert 阅读全文
posted @ 2017-11-10 13:49
小曺
阅读(1113)
评论(0)
推荐(0)
摘要:
前言 批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的。 unittest里面是不能生成html格式报告的,需要导入一个第三方的模块:HTMLTestRunner 一、导入HTMLTestRunner 1.这个模块下载不能通过pip安装了,只能 阅读全文
posted @ 2017-11-10 13:47
小曺
阅读(225)
评论(0)
推荐(0)
摘要:
前言 前面讲到unittest里面setUp可以在每次执行用例前执行,这样有效的减少了代码量,但是有个弊端,比如打开浏览器操作,每次执行用例时候都会重新打开,这样就会浪费很多时间。 于是就想是不是可以只打开一次浏览器,执行完用例再关闭呢?这就需要用到装饰器(@classmethod)来解决了。 一、 阅读全文
posted @ 2017-11-10 13:47
小曺
阅读(169)
评论(0)
推荐(0)
摘要:
前言 很多初学者在使用unittest框架时候,不清楚用例的执行顺序到底是怎样的。对测试类里面的类和方法分不清楚,不知道什么时候执行,什么时候不执行。 本篇通过最简单案例详细讲解unittest执行顺序。 一、案例分析 1.先定义一个测试类,里面写几个简单的case # coding:utf-8im 阅读全文
posted @ 2017-11-10 13:46
小曺
阅读(144)
评论(0)
推荐(0)
摘要:
前言 我们在写用例的时候,单个脚本的用例好执行,那么多个脚本的时候,如何批量执行呢?这时候就需要用到unittet里面的discover方法来加载用例了。 加载用例后,用unittest里面的TextTestRunner这里类的run方法去一次执行多个脚本的用例。 一、新建测试项目 1.pychar 阅读全文
posted @ 2017-11-10 13:46
小曺
阅读(200)
评论(0)
推荐(0)
摘要:
前言 熟悉java的应该都清楚常见的单元测试框架Junit和TestNG,这个招聘的需求上也是经常见到的。python里面也有单元测试框架-unittest,相当于是一个python版的junit。 python里面的单元测试框架除了unittest,还有一个pytest框架,这个用的比较少,后面有 阅读全文
posted @ 2017-11-10 13:45
小曺
阅读(169)
评论(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
小曺
阅读(223)
评论(0)
推荐(0)
摘要:
前言 登录这个场景在写用例的时候经常会有,我们可以把登录封装成一个方法,然后把账号和密码参数化,这样以后用的登录的时候,只需调用这个方法就行了 一、登录方法 1.把输入账号、输入密码、点击登录按钮三个步骤写成一个方法 2.然后把输入的账号和密码参数化 二、用例 1.下面的用例可以调用前面写的登录方法 阅读全文
posted @ 2017-11-10 13:37
小曺
阅读(221)
评论(0)
推荐(0)
摘要:
前言 在做结果判断的时候,经常想判断某个元素中是否存在指定的文本,如登录后判断页面中是账号是否是该用户的用户名。 在前面的登录案例中,写了一个简单的方法,但不是公用的,在EC模块有个方法是可以专门用来判断元素中存在指定文本的:text_to_be_present_in_element。 另外一个差不 阅读全文
posted @ 2017-11-10 13:37
小曺
阅读(8540)
评论(0)
推荐(0)
摘要:
前言 有时候元素明明已经找到了,运行也没报错,点击后页面没任何反应。这种问题遇到了,是比较头疼的,因为没任何报错,只是click事件失效了。 本篇用2种方法解决这种诡异的点击事件失效问题 一、遇到的问题 1.在练习百度的搜索设置按钮时,点保存设置按钮,alert弹出没弹出(代码没报错,只是获取ale 阅读全文
posted @ 2017-11-10 13:36
小曺
阅读(364)
评论(0)
推荐(0)
摘要:
前言 系统弹窗这个是很常见的场景,有时候它不弹出来去操作的话,会抛异常。那么又不知道它啥时候会出来,那么久需要去判断弹窗是否弹出了。 本篇接着Selenium2+python自动化42-判断元素(expected_conditions)讲expected_conditions这个模块 一、判断ale 阅读全文
posted @ 2017-11-10 13:36
小曺
阅读(4630)
评论(0)
推荐(0)
摘要:
前言 江湖传言,武林中流传八种定位,其中xpath是宝刀屠龙,css是倚天剑。 除了这八种,其实还有十种定位方法,眼看就快失传了,今天小编让失传已久的定位方法重出江湖! 一、十八种定位方法 前八种是大家都熟悉的,经常会用到的 1.id定位:find_element_by_id(self, id_)2 阅读全文
posted @ 2017-11-10 13:35
小曺
阅读(3001)
评论(0)
推荐(1)
摘要:
前言 元素定位有八种方法,这个能看到这一篇的小伙伴都知道了,那么有没有一种方法,可以把八种定位合为一种呢?也就是把定位的方式参数化,如id,name.css等设置为一个参数,这样只需维护定位方式的参数就行了。 小编曾经自己封装过这种方法,最后定位方法写成这样:find_element("id=kw" 阅读全文
posted @ 2017-11-10 13:33
小曺
阅读(395)
评论(0)
推荐(0)
摘要:
前言 获取页面title的方法可以直接用driver.title获取到,然后也可以把获取到的结果用做断言。 本篇介绍另外一种方法去判断页面title是否与期望结果一种,用到上一篇Selenium2+python自动化42-判断元素(expected_conditions) 提到的expected_c 阅读全文
posted @ 2017-11-10 13:31
小曺
阅读(277)
评论(0)
推荐(0)
摘要:
前言 经常有小伙伴问,如何判断一个元素是否存在,如何判断alert弹窗出来了,如何判断动态的元素等等一系列的判断,在selenium的expected_conditions模块收集了一系列的场景判断方法,这些方法是逢面试必考的!!! expected_conditions一般也简称EC,本篇先介绍下 阅读全文
posted @ 2017-11-10 13:30
小曺
阅读(634)
评论(0)
推荐(1)
摘要:
前言 验证码这种问题是比较头疼的,对于验证码的处理,不要去想破解方法,这个验证码本来就是为了防止别人自动化登录的。如果你能破解,说明你们公司的验证码吗安全级别不高,那就需要提高级别了。 对于验证码,要么是让开发在测试环境弄个万能的验证码,如:1234,要么就是尽量绕过去,如本篇介绍的添加cookie 阅读全文
posted @ 2017-11-10 13:29
小曺
阅读(287)
评论(0)
推荐(0)
摘要:
前言: 本来这篇是只在微信公众号(yoyoketang)上发布的,最近一搜,发现本很多人copy(copy公众号的,图片是加载不出来的)了,还没注明出处,不想多说什么,博客上也同步更新这篇吧! 最近群里有不少小白,想入手selenium,但是一直没找到学习路线,还没入门就迷路了,于是小编亲手绘制了一 阅读全文
posted @ 2017-11-10 13:28
小曺
阅读(220)
评论(0)
推荐(0)
摘要:
前言 虽然cookie相关操作在平常ui自动化中用得少,偶尔也会用到,比如登录有图形验证码,可以通过绕过验证码方式,添加cookie方法登录。 登录后换账号登录时候,也可作为后置条件去删除cookie然后下个账号登录 一、获取cookies:get_cookies() 1.获取cookies方法直接 阅读全文
posted @ 2017-11-10 13:25
小曺
阅读(244)
评论(0)
推荐(0)
摘要:
前言 最近看到群里有小伙伴贴出一组面试题,最近又是跳槽黄金季节,小编忍不住抽出一点时间总结了下, 回答不妥的地方欢迎各位高手拍砖指点。 一、selenium中如何判断元素是否存在? 首先selenium里面是没有这个方法的,判断元素存在需要自己写一个方法了。 元素存在有几种形式,一种是页面有多个元素 阅读全文
posted @ 2017-11-10 13:24
小曺
阅读(254)
评论(0)
推荐(0)
摘要:
前言: 在脚本中加入太多的sleep后会影响脚本的执行速度,虽然implicitly_wait()这种方法隐式等待方法一定程度上节省了很多时间。 但是一旦页面上某些js无法加载出来(其实界面元素经出来了),左上角那个图标一直转圈,这时候会一直等待的。 一、参数解释 1.这里主要有三个参数: clas 阅读全文
posted @ 2017-11-10 13:23
小曺
阅读(1208)
评论(0)
推荐(0)
摘要:
前言 有时候通过元素的属性的查找页面上的某个元素,可能不太好找,这时候可以从源码中爬出想要的信息。selenium的page_source方法可以获取到页面源码。 selenium的page_source方法很少有人用到,小编最近看api不小心发现这个方法,于是突发奇想,这里结合python的re模 阅读全文
posted @ 2017-11-10 11:27
小曺
阅读(1058)
评论(0)
推荐(0)
摘要:
前言 通常在做断言之前,都要先获取界面上元素的属性,然后与期望结果对比。本篇介绍几种常见的获取元素属性方法。 一、获取页面title 1.有很多小伙伴都不知道title长在哪里,看下图左上角。 2.获取title方法很简单,直接driver.title就能获取到 二、获取元素的文本 1.如下图这种显 阅读全文
posted @ 2017-11-10 11:25
小曺
阅读(423)
评论(0)
推荐(0)
摘要:
前言 最近有很多小伙伴在问如何判断一个元素是否存在,这个方法在selenium里面是没有的,需要自己写咯。 元素不存在的话,操作元素会报错,或者元素有多个,不唯一的时候也会报错。本篇介绍两种判断元素存在的方法。 一、find_elements方法判断 1.find_elements方法是查找页面上所 阅读全文
posted @ 2017-11-10 11:25
小曺
阅读(1054)
评论(0)
推荐(0)
摘要:
本篇转自博客:上海-小T 原文地址:http://blog.csdn.net/real_tino/article/details/59068827 我们在浏览网页时经常会碰到各种花样的弹窗,在做UI自动化测试的时候势必要处理这些弹窗,这里就介绍一下目前前端界两种弹窗的处理方法。 一、alert弹窗 阅读全文
posted @ 2017-11-10 11:24
小曺
阅读(1466)
评论(0)
推荐(0)
摘要:
前言 文件上传是web页面上很常见的一个功能,自动化成功中操作起来却不是那么简单。 一般分两个场景:一种是input标签,这种可以用selenium提供的send_keys()方法轻松解决; 另外一种非input标签实现起来比较困难,可以借助autoit工具或者SendKeys第三方库。 本篇以博客 阅读全文
posted @ 2017-11-10 11:23
小曺
阅读(679)
评论(0)
推荐(0)
摘要:
前言 最近有小伙伴问百度输入后,输入框下方的联想词如何定位到,这个其实难度不大,用前面所讲的元素定位完全可以定位到的。 本篇以百度输入框输入关键字匹配后,打印出联想词汇。 一、定位输入框联想词 1.首先在百度输入框输入关键词,如:博客,然后输入框下方会自动匹配出关键词。 2.这时候可以用firebu 阅读全文
posted @ 2017-11-10 11:23
小曺
阅读(367)
评论(0)
推荐(0)
摘要:
本篇转自博客:上海-悠悠 前言 appium1.5以后的版本才支持toast定位,并且 'automationName'得设置为'Uiautomator2',才能捕获到。 一、 Supported Platforms 1.查看appium v1.7版本[官方文档](https://github.co 阅读全文
posted @ 2017-11-10 10:28
小曺
阅读(4062)
评论(0)
推荐(2)
摘要:
本篇转自博客:上海-悠悠 前言appium1.5以下老的版本是可以通过name定位的,新版本从1.5以后都不支持name定位了一、 name定位报错1.最新版appium V1.7用name定位,报错:> selenium.common.exceptions.InvalidSelectorExcep 阅读全文
posted @ 2017-11-10 10:27
小曺
阅读(1442)
评论(0)
推荐(0)
摘要:
本篇转自博客:上海-悠悠 前言在启动app的时候,如果直接做下一步点击操作,经常会报错,于是我们会在启动完成的时候加sleep。那么问题来了,这个sleep时间到底设置多少合适呢?设置长了,就浪费时间,设置短了,就会找不到元素报错了。这个时候我们可以用wait_activity的语法,等到你想点击的 阅读全文
posted @ 2017-11-10 10:26
小曺
阅读(3612)
评论(0)
推荐(1)

浙公网安备 33010602011771号