随笔分类 - web自动化
发表于 2020-04-25 20:10阅读次数:2211评论次数:2
摘要:前言 pytest xdist是一款优秀的分布式测试插件,它可以实现进程级别的并发,也可以实现类似于master worker主从分布式测试。目前中文网站对于进程级别的并发介绍的比较多,对于主从分布式测试的资料少之又少。经过反复的实践,对于主从分布式环境的部署和运行有了一定的认知,因此,在本文中将着
阅读全文 »
发表于 2018-07-29 14:26阅读次数:1123评论次数:0
摘要:一. 了解需求,什么是系统的核心业务 二. 编写测试用例:用例名称,前置条件,测试数据,测试步骤,期望结果 三. 自动化代码的初步构建:所有的元素定位、元素操作、测试用例都写在一个模块中 问题: 1. 层次混乱,一旦页面元素调整,需要挨个寻找对应的测试模块,测试类,测试用例函数,不便于后期维护 2.
阅读全文 »
发表于 2018-07-29 12:06阅读次数:892评论次数:0
摘要:在Python Console中运行pytest发现报错了 这是为什么?因为Python Console已经是进入python之后的环境,就像在python自带的IDLE中运行pytest pytest的运行是不需要进入python环境的,因此可以在Terminal命令行中运行pytest,结果是o
阅读全文 »
发表于 2018-07-29 11:52阅读次数:1262评论次数:0
摘要:一. 测试模块内部使用fixture和测试模块调用外部公共的fixture 1. unittest框架下的测试用例模块 2. 测试用例模块内部使用fixture fixture:即测试用例执行的环境准备和清理,在unittest中即指setup()、teardown() 3. 测试用例模块调用外部公
阅读全文 »
发表于 2018-07-29 10:24阅读次数:1528评论次数:0
摘要:第一步:进入File—Settings—Python Integrated Tools 发现设置中Default test runner是Unittests 将其改为py.test,点击OK保存 如果此时,鼠标右击还是没有Run py.test出现,则选择第二步 第二步:在当前要运行的脚本的右上角点
阅读全文 »
发表于 2018-07-27 12:22阅读次数:1394评论次数:0
摘要:一. driver常用方法 二. 常用定位 三. 元素在页面不可见区域 四. iframe的操作 五. 页面弹出框:加等待时间 六. windows弹出框 七. 鼠标操作 八. 下拉列表 注意:下图中Select类引入不对 应该为 from selenium.webdriver.support.se
阅读全文 »
发表于 2018-07-05 22:20阅读次数:821评论次数:1
摘要:一. 原理 将页面的元素定位和元素行为封装成一个page类,实现页面对象和测试用例分离 类的属性:元素定位 类的行为:元素的操作 测试用例:调用所需页面对象中的行为,组成测试用例 二. 好处 1. 当某个页面的元素发生变化,只需要修改该页面对象中的代码即可,测试用例不需要修改 2. 提高代码重用率,
阅读全文 »
发表于 2018-07-05 16:38阅读次数:2470评论次数:1
摘要:在做一道练习题(参照下篇博文《在当前目录下递归的查找包含指定字符串的文件》)的时候,发现函数中的return的值竟然是None,百思不得其解,尝试化繁为简,用以下的简单的代码验证了一下 问题版本代码:为什么return i 返回的是 i , 而print(i)得到的是 0 如果把递归过程画成流程图,
阅读全文 »
发表于 2018-07-03 22:54阅读次数:1393评论次数:0
摘要:一般输入框有以下几种形式 第一种:短的input框 如百度首页的输入框,<input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">,百度输入框的值不在text中,是在value属性中 又
阅读全文 »
发表于 2018-07-03 20:05阅读次数:6954评论次数:0
摘要:一. webdriver中常用的cookie方法 webdriver中提供了操作cookie的相关方法: get_cookies() 获得cookie信息 add_cookie(cookie_dict) 添加cookie delete_cookie(name) 删除特定(部分)的cookie del
阅读全文 »
发表于 2018-07-03 14:06阅读次数:2482评论次数:0
摘要:一. 如何绕过页面登录 我们在登录网站的时候,通常需要输入用户名、密码和验证码,那么有没有办法绕过登录环节呢? 有两种方法可以解决这个问题,一种是利用chrome浏览器的用户配置,一种是利用cookie,这篇文章主要总结一下前者 二. 如何实现加载用户配置(以博客园为例) 第一步:如果之前未登录过该
阅读全文 »
发表于 2018-07-02 12:23阅读次数:1021评论次数:0
摘要:在看虫师的selenium--webdriver(python)教程时,发现另一种显性等待的写法,这也是WebDriverWait类源码中给出的例子 我们来看看虫师的例子 一. html源码 在python代码的同级目录下保存一个level_locate.html文件 现在要求鼠标悬浮在Link1下
阅读全文 »
发表于 2018-07-02 11:07阅读次数:4415评论次数:0
摘要:一. driver.switch_to.frame(id):可以通过id切换到iframe 之前学习了selenium切换到iframe的方法,代码如下 源码中并没有说可以通过id定位,但事实上是可以的 二. 嵌套iframe的切换 然而,对于嵌套的iframe,又该如何解决: 1. index定位
阅读全文 »
发表于 2018-06-30 23:15阅读次数:839评论次数:0
摘要:有时我们获得的元素在页面的不可见区域,为了将其拖动到可见区域,在《js中scrollIntoView()的用法》一文中利用scrollIntoView(false),使元素的底部和页面的底部对齐,其实还有一种方法,就是为元素设置焦点,菜鸟教程有提到这种方法,详见 HTML DOM focus()方法
阅读全文 »
发表于 2018-06-30 22:47阅读次数:1554评论次数:0
摘要:selenium中ActionChains类提供了鼠标操作的常用方法,但对于鼠标右键的菜单栏,无论是send_keys(Keys.ARROW_DOWN)还是send_keys("K")(注:前者是模拟键盘上的方向键,后者是通过字母以快捷方式打开)都显得无能为力 一个比较典型的例子是百度图片另存为:想
阅读全文 »
发表于 2018-06-29 00:29阅读次数:423评论次数:0
摘要:一. windows弹出框的处理 1. 真实案例 有时候,我们会在页面中遇到windows弹出框,和页面弹出框不同,windows弹出框不能用F12查看html源码来定位元素,对于这种弹出框应该作何处理呢? 例如:博客园中点击退出按钮,会弹出一个确认是否退出的弹出框,此时按F12是没有作用的 2.
阅读全文 »
发表于 2018-06-28 15:47阅读次数:2239评论次数:0
摘要:一. 作用 scrollTo()方法可把内容滚动到指定的坐标 二. 语法 scrollTo(x, y) 其中参数x为要在窗口文档显示区左上角显示的文档的x坐标, y为要在窗口文档显示区左上角显示的文档的y坐标 三. 应用 1. 移动到页面底部 2. 移动到页面顶部 其中, document.body
阅读全文 »
发表于 2018-06-27 17:48阅读次数:327评论次数:0
摘要:一. 如何处理首次登陆的引导页面 refresh():页面刷新。可以再浏览器中刷新一下,就可以取消引导页 二. 操作页面弹出框中的元素 1. 强制等待 sleep(秒) 比如百度首页的登录弹出框,在访问百度的时候,它就在html页面中出现了,只不过默认display:none,没有展示而已(这种弹出
阅读全文 »
发表于 2018-06-27 16:00阅读次数:278评论次数:0
摘要:一. 什么是iframe iframe是指一个html页面中嵌套了另外一个或多个html页面 如下代码,在外层html中有个id为"11"的div元素,iframe中也有一个id为"11"的div元素,由于元素定位的是当前html页面,所以无法定位iframe里面的元素。这时需要从当前html页面切
阅读全文 »
发表于 2018-06-27 12:16阅读次数:10906评论次数:0
摘要:一. 什么是scrollIntoView scrollIntoView是一个与页面(容器)滚动相关的API 二. 如何调用 参数为true:调用该函数,页面发送滚动,使element的顶部与视图(容器)顶部对齐 参数为false:使element的底部与视图(容器)底部对齐 三. 使用场景 在sel
阅读全文 »