![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Selenium + Python
文章平均质量分 76
Storm啊
QQ群:460430320
展开
-
Chrome开发者工具,验证元素定位正确与否
在开展Web UI自动化测试的时候,元素定位是首先要解决的问题,Selenium提供了多种元素定位方法,其中xpath是我们常用的定位手段之一,当我们写完xpath后,如何确保该xpath能定位到目标元素呢?本篇博客来探讨一下该问题。1、通过执行脚本,验证元素定位是否正确2、通过开发者工具Elements判断元素定位是否准确3、通过开发者工具console页签判断元素定位是否准确4、拓展1、通过执行脚本,验证元素定位是否正确脚本调试是非常重要的环节,但是通过执行脚本来判断元素定位是否准确,效率低下,并非原创 2022-02-07 09:32:23 · 2466 阅读 · 1 评论 -
23、Selenium + Python 实现 UI 自动化测试-文件上传
首先,我们要区分出上传按钮的种类,大体上可以分为两种,一种是input框,另外一种就比较复杂,通过js、flash等实现,标签非input一、input 标签示例网址:http://sahitest.com/demo/php/fileUpload.htm网页如下:代码如下:from selenium import webdriverimport time原创 2017-10-16 10:55:49 · 4961 阅读 · 2 评论 -
35、Selenium + Python 实现 UI 自动化测试-正片7
首先,我们回顾一下前面的知识。1、我们创建不同的目录用来分类储存文件,包括:(1)cases目录,用来存储用例;(2)common目录,用来存储公共函数供用例调用;(3)config目录,用来存储配置文件,将一些易变的配置项从代码分离;(4)report目录,用来存储报告文件(5)utils 目录,用来存储工具类,比如一些读配置文件的函数或方法;2、实现的功能,包括:原创 2017-10-24 16:00:37 · 477 阅读 · 0 评论 -
22、Selenium + Python 实现 UI 自动化测试-操作日期时间控件
其实做自动化会遇到很多坑,有的坑需要我们填掉,有的坑需要我们绕过去。而日期时间控件就是需要我们绕过去的控件,千万别想着如何点击形形色色的日期控件。一、先来看看日期时间控件的前端形式对,没错,日期时间控件,就是一个input框,是不是可以像普通文本框一样直接输入日期呢?我们来试试。二、实验1、最简单的例子,直接send_keys。(日期选择器的日期字段原创 2017-10-16 10:15:37 · 6483 阅读 · 5 评论 -
34、Selenium + Python 实现 UI 自动化测试-正片6
某一天,测试地址变了。或者某一天邮件发送和接收人地址变了,怎么办?我们需要去login.py文件中修改url地址;我们需要去sendmail.py文件中修改邮件发送和接收人地址。去不同文件修改不同变量值,对于不熟悉你框架的人来说是困难的,对于我们自己来说也是不方便的。今天我们引入配置文件,将这些易发生变化的部分,放到配置文件里,做统一管理。一、我们在框架目录下,新建config文件原创 2017-10-24 14:15:39 · 382 阅读 · 0 评论 -
33、Selenium + Python 实现 UI 自动化测试-正片5
本文我们将测试报告用邮件发出来。原创 2017-10-23 17:44:39 · 555 阅读 · 0 评论 -
32、Selenium + Python 实现 UI 自动化测试-正片4
再来写几条用例吧。创建一个新文件test_new_bug.py文件,用来新建bugfrom selenium import webdriverimport unittestclass TestNewBug(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome()原创 2017-10-23 16:29:18 · 349 阅读 · 0 评论 -
31、Selenium + Python 实现 UI 自动化测试-正片3
要是能自动生成一个报告就好了,可以清晰的看到每条用例的执行结果。今天我们引入HTMLReport。将HTMLTestRunner.py文件放到当前目录,然后修改run.py文件如下:import unittestfrom HTMLTestRunner import HTMLTestRunnerif __name__ == '__main__': testdir = "./原创 2017-10-23 15:09:14 · 436 阅读 · 0 评论 -
30、Selenium + Python 实现 UI 自动化测试-正片2
问题:当用例越来越多代码势必越来越大,这样太不易读和维护了。并且从用例角度来说,登录(各种情况输入、输出)放在一个文件比较合适,新建项目(成功 or 失败等各种情况)用例放在一个文件比较合适。原创 2017-10-20 17:05:44 · 409 阅读 · 0 评论 -
21、Selenium + Python 实现 UI 自动化测试-操作cookies
什么是cookie,放在前端的一篇文章中解释。这里我们直接学习操作cookie。一、查看cookies,注意观察cookie都包含什么字段如何查看浏览器cookies方法1:使用开发者工具方法2:二、看看selenium给我们提供了哪些操作cookies的方法两种删除,两种获取,一种添加三、试用一下这5个方原创 2017-10-13 10:25:10 · 801 阅读 · 0 评论 -
20、Selenium + Python 实现 UI 自动化测试-AutoIT工具
Selenium 进行UI自动化时经常会遇到OS弹框,比如上传、下载框,对这种弹框,selenium无法处理,常常我们会选择AutoIT这个工具。一、介绍AutoIt v3 是用以编写并生成具有 BASIC 语言风格的脚本程序的免费软件,它被设计用来在Windows GUI(用户界面)中进行自动操作。通过它可以组合使用模拟键击、鼠标移动和窗口/控件操作等来实现自动化任务,而这是其它原创 2017-10-12 09:49:03 · 2182 阅读 · 0 评论 -
4、Python 处理 ini 文件
.ini 文件是Initialization File的缩写,即初始化文件,是windows的系统配置文件所采用的存储格式。一、.ini 文件示例下面是一个 .ini 文件:[School]ip = 10.15.40.123mask = 255.255.255.0gateway = 10.15.40.1dns = 211.82.96.1[Match]ip =原创 2017-10-25 10:36:45 · 435 阅读 · 3 评论 -
5、Python 处理 yaml 文件
1、PyYaml是Python的一个专门针对yaml文件操作的模块2、安装:C:\Users\admin>pip install pyyamlRequirement already satisfied: pyyaml in c:\python36\lib\site-packages3、使用非常简单,就像 json 一样、load和dump就能满足基本的需求。原创 2017-10-26 10:07:07 · 6259 阅读 · 2 评论 -
24、Selenium + Python 实现 UI 自动化测试-文件下载
文件上传姊妹篇,文件下载来了。http://www.cnblogs.com/vipitsoft/p/5628993.htmlhttp://blog.csdn.net/lanyang123456/article/details/75169752原创 2017-10-16 16:14:57 · 1325 阅读 · 0 评论 -
UI自动化定位元素之span类型元素
帮朋友定位元素,发现要做UI层自动化,还是需要对前端知识了解多谢,比如JS,比如JQuery,这样能更好的借助这些语言定位元素,操作元素。记录一下。span的赋值与取值1、span的文本的取值。js取的值并不是用document.getElementById(‘span_noticesg’).value,而是document.getElementById(‘span_id’).in...转载 2018-05-08 11:42:56 · 3671 阅读 · 0 评论 -
38、Selenium 之 WebDriverWait
之前有篇文章介绍过Selenium的等待知识,可惜当时水平有限,只介绍了sleep和implicitly_wait的用法。今天还是补充一下WebDriverWait的知识吧。一、webdrivewait 示例代码from selenium import webdriverfrom selenium.webdriver.support.ui import WebDriverWaitfro转载 2018-01-08 16:27:43 · 47364 阅读 · 6 评论 -
Webdriver byclassname error:"Compound class names not permitted
原文地址:https://www.douban.com/note/637775924/driver.findElement(By.className("alert alert-success"));当class的属性值,中间有空格时,通过by方法会报错:Compound class names not permitted解决方法:You can ac转载 2017-11-22 15:11:08 · 2037 阅读 · 0 评论 -
36、Selenium Page Objects 思想
UI自动化的页面对象思想很重要,可以说是一个项目自动化是否成功的关键。今天我们来细细的说下为什么如此。一、系统发生了变化看到一句话,说的特别有道理:“事实上,你的系统发生变化是必然的;这说明他在改进”假设我们写了很多自动化测试用例,这时候系统发生了变化:1、之前有10条case中用到了A元素,但现在A元素定位xpath发生了变化;——这时候你需要修改10条cas原创 2017-11-01 14:39:11 · 572 阅读 · 0 评论 -
9、Selenium + Python 实现 UI 自动化测试-操作浏览器窗口
好,操作浏览器标签的姊妹篇,操作浏览器窗口来了。补充点知识:有的文章写了这条js语句在新标签打开新页js = "window.open('https://www.sogou.com')"下面这条语句在新窗口打开新页js = "window.open('https://www.sogou.com','_blank')"实测,目前selenium 和 Chrom原创 2017-09-26 10:21:22 · 1158 阅读 · 0 评论 -
37、Selenium 之 help(driver)
看到一本教程,将help() 命令放到了最前面介绍。help()可以让我们了解对象及其使用方法,确实无比重要,那么今天就来看看这条命令都能做什么吧。1、命令行输入Python,打开Python环境。C:\Users\admin>pythonPython 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bi原创 2017-11-06 09:12:47 · 1113 阅读 · 1 评论 -
11、python中的try/except/else/finally语句
用实例来解释下Python中的try/except/else/finally语句的执行顺序1、如果try中的语句块执行成功,则会先执行try,再执行else,再执行finallya='abc'try: print(a[0])except IndexError as e: print('AAA')except IOError as e: print原创 2017-11-13 14:22:13 · 525 阅读 · 0 评论 -
38、Selenium 之订制启动Chrome的选项(Options)
使用 selenium 时,我们可能需要对 chrome 做一些特殊的设置,以完成我们期望的浏览器行为,比如阻止图片加载,阻止JavaScript执行 等动作。这些需要 selenium的 ChromeOptions 来帮助我们完成1、什么是 chromeoptionschromeoptions 是一个方便控制 chrome 启动时属性的类。通过 selenium 的源码,可以看到原创 2017-11-13 10:23:51 · 25376 阅读 · 2 评论 -
25、Selenium + Python 实现 UI 自动化测试-unknown error: Element is not clickable at point (x,y)
今天遇到个有趣的问题,分享一下一、网址:http://www.hsjcjwh.top/dn_biz/index.php/home/users/regist.html这是一个注册页,需要自动化输入用户注册信息,然后点击注册按钮二、分析1、第一步,看了没有iframe,该元素有id按照正常逻辑写代码from selenium import webdriver原创 2017-10-17 15:31:43 · 477 阅读 · 0 评论 -
19、Selenium + Python 实现 UI 自动化测试-XPath and CSS cheat sheet
转载一篇灰蓝的文章,原文地址:http://blog.csdn.net/huilan_same/article/details/52806985XPath、CSS定位速查表HTML版如下:描述XpathCSS Path直接子元素//div/adiv > a子元素或后代元素转载 2017-10-11 17:37:12 · 457 阅读 · 1 评论 -
10、XPath 学习记录——XPath操作HTML
趁热打铁,使用前一篇文章中 XPath 节点来定位HTML 页面。HTML文件如下:html>html lang="en">head> meta charset="UTF-8"> title>Stormtitle>head>body> h1 id="h1" name="hname" class="cname">这是一个h1标签h1> form>原创 2017-10-10 17:27:10 · 3157 阅读 · 0 评论 -
29、Selenium + Python 实现 UI 自动化测试-正片1
前面陆陆续续写了很多文章,有基本的前端知识,有Python文章,有各种元素定位方法,我觉得是时候开始为一个项目编写自动化测试了。上来就介绍一个较成熟的框架应该会比较难理解。我们从最基本的开始,然后慢慢优化,到最后,形成我们自己的测试框架。这应该是个不错的选择。好,今天就“从零单排之19杀风暴之灵”,额,从零开始自动化之编写测试用例自动化测试对象:我们本地部署的web 系统,Re原创 2017-10-20 15:03:57 · 1057 阅读 · 0 评论 -
12、Selenium + Python 实现 UI 自动化测试-操作下拉列表
Selenium 提供了Select 包,让我们方便的操作下拉列表一、先来看下下拉列表Select 的元素属性二、对下拉列表操作步骤1、首先需要从selenium导入select的方法:from selenium.webdriver.support.ui import Select,注意S大写2、使用select方法前,先实例化:s1 = Select(se原创 2017-09-26 15:12:58 · 2531 阅读 · 0 评论 -
11、Selenium + Python 实现 UI 自动化测试-操作按钮、复选框
一、按钮input type=button.click()方法,实现点击按钮功能from selenium import webdriverfrom time import sleepdriver = webdriver.Chrome()driver.get("http://sahitest.com/demo/clicks.htm")driver.find_e原创 2017-09-26 14:12:59 · 6995 阅读 · 0 评论 -
10、Selenium + Python 实现 UI 自动化测试-操作输入框
既然是UI自动化,第一个对手就是前端各种样式的控件元素,接下来要逐个搞定常用控件的定位及操作。一、输入框元素属性先来看下输入框的元素属性,第一个是redmine,bug管理系统,搜索框(可以输入文字的)在来看一个企业任务管理系统的搜索框,可以输入文字第三个看百度登录窗口,用户名输入框(你可以看看密码框的type)二、输入框操作方法&属性原创 2017-09-26 11:16:38 · 7217 阅读 · 0 评论 -
8、Selenium + Python 实现 UI 自动化测试-操作浏览器标签
一、概览想想平时我们都对浏览器标签做过哪些操作?新建,关闭,切换等等二、了解浏览器窗口和标签页快捷键百度搜索下关键词,或者看下这篇文章:https://wenku.baidu.com/view/950f30126c175f0e7cd13780.html三、实例本节学会 Webdriver 对浏览器标签的常用操作1、https://github.c原创 2017-09-25 16:17:07 · 588 阅读 · 0 评论 -
7、Selenium + Python 实现 UI 自动化测试-键盘操作
鼠标操作姊妹篇,键盘操作来了一、概览我们能想到哪些键盘操作?输入文字,组合按键(ctrl + a),功能按键(向上箭头ARROW_UP等)二、操作实例1、输入文字:send_keysfrom selenium import webdriverfrom time import sleepdriver = webdriver.Chrome()driver原创 2017-09-25 15:40:35 · 732 阅读 · 0 评论 -
6、Selenium + Python 实现 UI 自动化测试-鼠标操作
前面的章节我们已经使用过.click()操作,是一个鼠标的单击动作。鼠标操作还包括双击、悬浮、拖动等操作,今天,跟我将它“一网打尽”一、概览本文介绍Selenium Webdriver 提供的鼠标操作方法。二、前提引入鼠标操作的包from selenium.webdriver.common.action_chains import ActionChain原创 2017-09-25 14:54:47 · 1884 阅读 · 0 评论 -
4、Selenium + Python 实现 UI 自动化测试-定位元素吗?
前一篇说的元素定位,只是告诉你有这个用法,实际项目中,我们面临的情况要复杂的多,大多数自动化项目都死在了元素定位上,以至于有人曾说:“想要完成自动化项目,测试人员就要有修改代码的权限,给需要用到的元素加上id。。。。”,现实中允许测试修改代码的事情很难发生,而且你不应该依赖id去定位,正确的做法是提升自己定位元素的本领。或者说,一个元素有id或者有唯一的name,你就能定位到了吗?我觉得有必要原创 2017-09-25 11:25:13 · 987 阅读 · 0 评论 -
3、Selenium + Python 实现 UI 自动化测试-元素定位
实施自动化第一步,定位元素,看似简单,实则困难。莫慌,咱们一起搞定它!一、总览先来看一下,webdriver提供的定位元素的方法,注意蓝色框中的elements,是复数,带s的;而红色框中是element,不带s的。前面那个粉色圆圈中的m代表的是method,方法的意思(调用方法有括号)。下方图是pycharm的提示信息截图,这也是我为什么上来就推荐大家使用pycharm的原因。...原创 2017-09-22 17:10:24 · 1293 阅读 · 0 评论 -
2、Selenium + Python 实现 UI 自动化测试-第一个自动化测试脚本
一、境界不到,所以不谈自动化测试的目标、不谈自动化测试的投入产出比、不谈适用场景,不谈什么优缺点,尽量少谈一些理论的东西,除非这对你理解实战有帮助。二、自动化测试实施过程(刚写完不谈理论,就开始理论,但请相信我,这只是铺垫)基本可以概括为:1、定位元素,将其存储起来;2、对该元素进行操作;3、对比操作的结果和预期结果是否一致;三、Selenium 2的原理...原创 2017-09-22 16:09:55 · 1208 阅读 · 0 评论 -
1、Selenium + Python 实现 UI 自动化测试-环境搭建
密谋已久的文章分享从今天开始,分享测试知识,不求赢得赞誉,只求无愧于心。一、总览Windows 10 + Python 3.6 + Selenium 3.4 + Chrome 59 + Pycharm二、删除三、安装Python1、下载官网:https://www.python.org/,打开官网,在Downloads下,选择操作系统,我的环境是Windows,点击后进入下载页,目前Python比...原创 2018-03-13 16:38:10 · 681 阅读 · 0 评论 -
13、Selenium + Python 实现 UI 自动化测试-操作表格
一、看下表格元素一个table 对应一个表格,一个tr 对应一行,tr下面的td对应单元格二、如果只是想取某个单元格中的值,像定位普通元素一样定位单元格即可from selenium import webdriverdriver = webdriver.Chrome()driver.get('http://sahitest.com/demo/tableTest原创 2017-09-26 16:01:42 · 1315 阅读 · 7 评论 -
14、Selenium + Python 实现 UI 自动化测试-操作Frame(iFrame)
回顾:还记得登录163邮箱那篇文章中遇到的问题吗?(http://blog.csdn.net/duzilonglove/article/details/78083344),今天我们来解决掉他。一、概念先来看下这篇文章中对Frame和iFrame的介绍:原文地址:http://blog.csdn.net/lyr1985/article/details/6067026这里摘原创 2017-09-26 17:28:30 · 2012 阅读 · 0 评论 -
15、Selenium + Python 实现 UI 自动化测试-操作JavaScript弹窗
一、概览JavaScript 弹窗有三种:1、Alert2、Confirm3、Prompt二、页面元素先来通过截图看看这三种元素,都是onclick的属性,只不过值不同,调用不同的show 方法。Alert 弹窗:文字信息 + 确定按钮;Confirm 弹窗:文字信息 + 确定按钮 + 取消按钮Prompt 弹窗:文字信息 + 输入框 +原创 2017-09-27 11:16:13 · 912 阅读 · 0 评论 -
1、通过 BitNami 部署 RedMine
接下来要针对一个系统写自动化测试脚本,所以我需要找一个大家都能访问的系统,以方便大家跟我练习(如果你愿意的话)这个系统最好符合以下条件:1、真正像一个系统,有登录功能,但又不能有验证码(实际项目中,让开发帮你注掉验证码功能)2、系统逻辑简单,最好大家都熟悉3、有各种控件,能帮大家练手4、成熟的系统,不会出现各种bug好多作者都是拿百度做例子,总感觉离实际项目原创 2017-10-20 10:43:53 · 894 阅读 · 0 评论