Selenium
文章平均质量分 72
huilan_same
没有走不通的路,只有想不通的人。
https://huilansame.github.io/
展开
-
HTMLTestRunner 为什么用PyCharm(Eclipse)执行测试成功但无法生成报告
为什么用PyCharm或者Eclipse执行测试成功但无法生成HTMLTestRunner报告最近遇到一些人问这样的问题: 他们的代码写的没问题,执行也成功了,但就是无法生成HTMLTestRunner的报告,截图如下: 其实这是编辑器搞得鬼,编辑器为了方便用户执行测试,都有一项功能,可以用编辑器来调用unittest或者nose来执行测试用例,这种情况下,执行的只是用例或者套件,而不是整个文件原创 2016-06-21 15:15:41 · 10174 阅读 · 8 评论 -
selenium之 如何控制网页内嵌div中滚动条的滚动
很多人疑惑怎么用selenium控制网页div中滚动条的滚动,其实这个问题很简单,用JS很简单就可以实现。 示例HTML代码如下:<!DOCTYPE html><html><head><style type="text/css">div.scroll{background-color:#00FFFF;width:100px;height:100px;overflow:auto;原创 2016-08-05 17:40:59 · 18693 阅读 · 3 评论 -
selenium之 下拉选择框Select
今天总结下selenium的下拉选择框。我们通常会遇到两种下拉框,一种使用的是html的标签select,另一种是使用input标签做的假下拉框。后者我们通常的处理方式与其他的元素类似,点击或使用JS等。而对于前者,selenium给了有力的支持,就是Select类。我们要进行试验的网站:http://sahitest.com/demo/selectTest.htm网页与源码截图如下:1.导入(im原创 2016-08-18 23:52:39 · 97653 阅读 · 11 评论 -
selenium之 搞定checkbox、radiobox
网页上有时候遇到checkbox和radio,一般情况下这两种都是input标签,我们可以通过点击或者发送空格的方式进行选中试验网页代码checkandradio.html:<html><body>Checkbox:<input type="checkbox" value="cv1" name="c1"><input type="checkbox" value="cv2"><input t原创 2016-08-23 09:29:14 · 48891 阅读 · 2 评论 -
selenium之 辨识alert、window以及操作
很多人分辨不出什么是alert、什么是window,今天讨论下怎么辨识alert和window,以及页面元素如div伪装的对话框。1.分辨首先区别下alert、window和伪装对话框:alert,浏览器弹出框,一般是用来确认某些操作、输入简单的text或用户名、密码等,根据浏览器的不同,弹出框的样式也不一样,不过都是很简单的一个小框。在firebug中是无法获取到该框的元素的,也就是说alert原创 2016-08-24 11:01:04 · 28407 阅读 · 4 评论 -
selenium之 玩转鼠标键盘操作(ActionChains)
用selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击、双击、点击鼠标右键、拖拽等等。而selenium给我们提供了一个类来处理这类事件——ActionChains selenium.webdriver.common.action_chains.ActionChains(driver)这个类基本能够满足我们所有对鼠标操作的需求。1.ActionChains基本用法首先原创 2016-08-24 23:18:23 · 98089 阅读 · 15 评论 -
selenium之 功能键Keys
我们有时会需要使用发送键盘按键的方法来进行一些操作。一些可见的正常的文本可以直接send_keys()发送,但是有一些功能键就需要其他的方法。selenium就为我们提供了一个Keys类,其中提供了很多常用的不可见的特殊按键。摘取常用的如下: BACKSPACE(或者BACK_SPACE) ——退格、删除键 TAB ——有时可用来切换input框的焦点 ENTER ——回车键,有时可原创 2016-08-25 22:51:21 · 16881 阅读 · 0 评论 -
selenium之 一个不常用但又很有用的方法(switch_to.active_element),获取当前焦点元素
今天我们讲讲switch_to家中的一个异类:switch_to.active_element,当然,我们先普及一下其他的家族成员。1.switch_toselenium做自动化的过程中,经常会遇到alert、frame和新的window,这是经常是switch_to家族大展拳脚的时候,先看看switch_to家族的成员: alert ——返回浏览器的Alert对象,可对浏览器alert、co原创 2016-08-28 00:18:15 · 35077 阅读 · 8 评论 -
selenium之 浏览器导航栏的三个按钮(back、forward、refresh)
今天这几个方法非常简单,就是我们能看到的浏览器导航栏的三个按钮:后退、前进、刷新 driver.back() driver.forward() driver.refresh()不多说,上代码试试# -*- coding: utf-8 -*-from selenium import webdriverfrom time import sleepdriver = webdriver.原创 2016-08-28 10:06:06 · 23709 阅读 · 2 评论 -
selenium之 时间日期控件的处理
很多人问时间日期的空间怎么处理,但是时间日期控件各种各样,你可能遇到正常点的像这样: 当然也可能遇到难点的,像这样: 当然,也不排除会遇到变态的,像这样: 呵呵,真要一个个想着怎么去选择,简直是非人类干的事!那么该怎么办?其实很简单,我们不去搞时间日期空间,我们把它当成一个普通的input框处理就好了!但是,很多此类型input框都是禁止手动输入的,怎么办?很简单,用js把禁止输入的reado原创 2016-08-31 15:13:59 · 38904 阅读 · 31 评论 -
selenium之 富文本框和editor编辑器的处理
在群里经常会遇到有人问文本框的处理,今天有时间,便写一点这方面的经验。一般输入框有三种:短的input框,如下:<input id="zenInput2" class="zenInputDemo" type="text" style="position: static;">textarea框,如下:<textarea id="message1" name="message1"></textarea原创 2016-08-31 16:22:51 · 9854 阅读 · 3 评论 -
selenium之 定位以及切换frame(iframe)
很多人在用selenium定位页面元素的时候会遇到定位不到的问题,明明元素就在那儿,用firebug也可以看到,就是定位不到,这种情况很有可能是frame在搞鬼(原因之一,改天专门说说定位不到元素,可能的一些原因及处理办法)。frame标签有frameset、frame、iframe三种,frameset跟其他普通标签没有区别,不会影响到正常的定位,而frame与iframe对selenium定位而原创 2016-08-13 17:34:04 · 196321 阅读 · 60 评论 -
selenium之 文件上传所有方法整理总结
文件上传是所有UI自动化测试都要面对的一个头疼问题,今天博主在这里给大家分享下自己处理文件上传的经验,希望能够帮助到广大被文件上传坑住的seleniumer。首先,我们要区分出上传按钮的种类,大体上可以分为两种,一种是input框,另外一种就比较复杂,通过js、flash等实现,标签非input我们分别对这两种进行分析:1.input标签众所周知,input标签是可以直接send_keys的,这里也原创 2016-09-05 13:43:35 · 58492 阅读 · 17 评论 -
Python selenium —— 一定要会用selenium的等待,三种等待方式解读
发现太多人不会用等待了,博主今天实在是忍不住要给大家讲讲等待的必要性。很多人在群里问,这个下拉框定位不到、那个弹出框定位不到…各种定位不到,其实大多数情况下就是两种问题:1 有frame,2 没有加等待。殊不知,你的代码运行速度是什么量级的,而浏览器加载渲染速度又是什么量级的,就好比闪电侠和凹凸曼约好去打怪兽,然后闪电侠打完回来之后问凹凸曼你为啥还在穿鞋没出门?凹凸曼分分中内心一万只羊驼飞过,欺负哥原创 2016-09-15 00:17:50 · 102175 阅读 · 37 评论 -
我又把HTMLTestRunner改了一下,支持Python3,添加echarts统计饼图
之前用Bootstrap把HTMLTestRunner改的美观了一点,同时改成了中文的报告,但那个是基于Python2的,见这篇博文 selenium之 输出报告,对HTMLTestRunner进行样式调整后的示例。这次呢,博主又给它改成了Python3的版本,同时给它加上了一个用echarts实现的统计饼图。效果如下:但这个需要用到echarts的js文件,如下图:把echarts的js放到与报原创 2017-09-12 14:30:44 · 20496 阅读 · 29 评论 -
Python selenium —— 教你在Windows上搭建Python+Selenium环境
发现很多人连环境都不会搭,虽然这个问题没有什么技术含量,但博主也决定写点东西给那些环境都不会搭建的小白。关于selenium是什么的问题博主实在是懒得解释,直接上环境,小白学习一般需要以下一些东西:浏览器(Firefox/Chrome/IE..)PythonSeleniumSelenium IDE(如果用Firefox)FireBug、FirePath(如果用Firefox)c原创 2016-10-21 23:31:38 · 39169 阅读 · 5 评论 -
selenium之 兼容所有浏览器滚动条滚动的js
很多人发现写的js操作滚动条的代码只能控制firefox的滚动条,而chrome则不吊你;好不容易chrome能动了,firefox又不理你了。简直是坑的一比。那有没有兼容firefox、chrome、IE的方法呢?当然是有的,博主今天就给大家分享几种兼容以上三种浏览器的js写法:$(window).scrollTop(300);$(document).scrollTop(300)$("html原创 2016-08-31 17:27:54 · 7310 阅读 · 0 评论 -
Python selenium —— 将你的自动化脚本打包成一个exe
写好了Python selenium脚本,到其他机器上运行,还得要在其他机器上也装一套Python的环境,尤其在你用了一些第三方库的时候,甚至还要顾及操作系统是32位还是64位,是不是很坑,如果能打成一个exe就好了,不论32位还是64位,只要拷过去,安装合适版本的浏览器就行了。今天博主就带你将你的py脚本打包成一个exe1. 环境首先准备下环境,一台32位虚拟机(64位的py2exe不允许将程原创 2016-12-15 15:17:28 · 34924 阅读 · 8 评论 -
selenium之 输出报告,对HTMLTestRunner进行样式调整后的示例
修改后HTMLTestRunner下载链接:下载链接因为觉得HTMLTestRunner原来的样式太难看,而且都是英文的报告,故而对其进行了一些小小的改动,使其输出中文报告,样式也用bootstrap做了点调整,下面用个示例展示下:# -*- coding: utf-8 -*-import unittestclass ExampleCase1(unittest.TestCase): u'原创 2016-08-09 10:10:53 · 16129 阅读 · 11 评论 -
selenium之 autoit命令行参数
selenium对网页进行UI自动化时经常会遇到OS弹框,比如上传、下载框,对这种弹框,selenium无法处理,常常我们会选择autoit这个工具。想要参数化传入的参数,可以通过autoit的命令行参数: myProg.exe param1 “This is a string parameter” 99 在脚本中,可用以下变量获取命令行参数:$CmdLine[0] ; = 3$CmdLin原创 2016-08-15 09:37:23 · 12631 阅读 · 4 评论 -
selenium之 关闭窗口close与quit
selenium关闭窗口有两个方法,close与quit,我们稍作研究便知道这两个方法的区别。1.看源码或API这是close()的说明: Closes the current window. 关闭当前窗口。这是quit()的说明: Quits the driver and closes every associated window. 退出驱动并关闭所有关联的窗口。从这里就原创 2016-08-26 16:36:51 · 71287 阅读 · 3 评论 -
selenium之 坑(StaleElementReferenceException: Message: Element not found in the cache...)
今天给大家分享一个selenium中经常会有人遇到的坑: selenium.common.exceptions.StaleElementReferenceException: Message: Element not found in the cache - perhaps the page has changed since it was looked up群里经常会有人问,“我循环去点击一原创 2016-09-04 14:29:26 · 24892 阅读 · 16 评论 -
Python selenium —— 父子、兄弟、相邻节点定位方式详解
今天跟大家分享下selenium中根据父子、兄弟、相邻节点定位的方法,很多人在实际应用中会遇到想定位的节点无法直接定位,需要通过附近节点来相对定位的问题,但从父节点定位子节点容易,从子节点定位父节点、定位一个节点的哥哥节点就一筹莫展了,别急,且看博主一步步讲解。1. 由父节点定位子节点最简单的肯定就是由父节点定位子节点了,我们有很多方法可以定位,下面上个例子:对以下代码:<html><body>原创 2016-09-14 21:50:30 · 90013 阅读 · 15 评论 -
Python selenium —— 动态id、class怎么定位
今天再给大家分享一个定位不到元素的原因——动态id。没有打开新页面、没有alert、没有frame、加了等待时间,但是还是定位不到元素?很有可能是你要定位的元素的属性是动态的,即每次打开页面,这个元素的id或者class等元素属性是动态生成的。代码执行时,元素的属性已经与之前不同,用之前的属性值去定位自然是定位不到的,会抛出NoSuchElementException。那么,怎么判断元素属性是否是动原创 2016-09-20 11:36:15 · 29646 阅读 · 3 评论 -
selenium自动化测试资源整理(含所有版本chrome、chromedriver、firefox下载链接)
今天把手头有的一些关于selenium测试的资源整理了一下,分享出来。1. 所有版本chrome下载是不是很难找到老版本的chrome?博主收集了几个下载chrome老版本的网站,其中哪个下载的是原版的就不得而知了。 http://www.slimjet.com/chrome/google-chrome-old-version.php http://google_chrome.en.d原创 2016-09-22 00:17:33 · 78661 阅读 · 13 评论 -
Python selenium —— 文件下载,不弹出窗口,直接下载到指定路径
今天谈谈文件下载吧,很多人不会处理弹出的文件下载框,其实跟上传类似,可以用autoit和win32api解决,方法类似,可以看博主之前的文章Python selenium —— 文件上传所有方法整理总结,今天这里博主主要想讲讲更漂亮的一种处理办法,那就是指定下载路径,不弹出弹框,直接下载到指定路径。今天主要分享Firefox和Chrome的设置方法。Firefox 文件下载对于Firefox,需要我原创 2016-10-11 17:24:15 · 43075 阅读 · 20 评论 -
[译]Selenium Webdriver - 下载、安装稳定版本
译自techbeamers,原文链接 Selenium Webdriver正在持续地改进它的特性。最近,在Selenium Webdriver 3.0的官方release版本之后,我们又看到一些它的beta版本。 原因在于这个产品正在经历一个根本性的转变。所以每个使用Selenium的自动化测试工程师都应该关注它新版本的改变。这就是我们写这篇文章的原因。在这里,我们向你提供最新的,最稳翻译 2016-10-24 14:26:10 · 25953 阅读 · 0 评论 -
[译]Selenium —— 怎样使用FireBug和FirePath
译自techbeamers,原文链接怎样使用FireBug和FirePath寻找定位器什么是XPATHXPath是用于在网页上唯一的识别元素的技术,它就像HTML元素的地址,比如check boxes、text或div等。在Selenium里,我们认为XPath是最值得信赖的定位器之一。关于XPath更多的内容,请阅读 W3School XPath教程 。什么是FireBug插件Firebug是F翻译 2016-10-25 10:02:48 · 9635 阅读 · 1 评论 -
Python selenium —— Webdriver Exception cheat sheet
之前整理了Python版webdriver的备忘单与xpath、css的备忘单,今天把Python webdriver的exception清单整理一下。Python Webdriver Exception Cheat Sheet上表大概罗列了Python Webdriver 中的Exception以及出现该问题的原因,具体的代码解析与代码示例博主改天再给大家分享。HTML版如下: 异常 描述原创 2016-10-14 13:06:42 · 3321 阅读 · 0 评论 -
Python selenium —— XPath and CSS cheat sheet
XPath、CSS定位速查表HTML版如下: 描述 Xpath CSS Path 直接子元素 //div/a div > a 子元素或后代元素 //div//a div a 以id定位 //div[@id=’idValue’]//a div#idValue a 以class定位 //div[@class=’classValue’]//a di原创 2016-10-13 15:04:42 · 4793 阅读 · 0 评论 -
Python selenium —— webdriver cheat sheet(webdriver备忘单)
最近在axatrikx上看到篇webdriver cheat sheet,不过是用Java作的,就想到可以整理个Python版的,便有了此篇博文。把webdriver中主要的方法、重点进行整理到一张表格中,方便随手查阅。Webdriver Cheat Sheet如果它对你有帮助,或者你有什么好的建议,请告诉我。pdf版本可在此下载 webdriver cheat sheet by 灰蓝 更多关于原创 2016-10-13 10:58:52 · 3594 阅读 · 2 评论 -
selenium 学习网站
分享一些学习selenium的网站:文档Selenium Python BindingsSelenium DocumentationWebDriver Living Document网站axatrikxtechbeamershttp://www.softwaretestingstudio.com/http://www.software-testing-tutorials-automation.co原创 2016-10-28 15:08:55 · 9525 阅读 · 1 评论 -
Python selenium —— 用chrome的Mobile emulation模拟手机浏览器测试手机网页
很多人发现chrome有项功能,就是在开发者工具里能够模拟手机打开网页,便想能否用selenium对此进行自动化测试。答案当然是yes!今天博主便给大家分享下如何用chrome的MobileEmulation实现手机网页自动化测试。1. 第一种方法第一种方法是通过device name来确定我们要模拟的手机样式,示例代码如下:# -*- coding: utf-8 -*-from selenium原创 2016-10-19 09:05:01 · 23502 阅读 · 13 评论 -
selenium之 chromedriver与chrome版本映射表(更新至v2.46)
更多关于python selenium的文章,请关注我的专栏:Python Selenium自动化测试详解看到网上基本没有最新的chromedriver与chrome的对应关系表,便兴起整理了一份如下,希望对大家有用: chromedriver版本 支持的Chrome版本 v2.37 v64-66 v2.36 v63-65 v2.3...原创 2016-07-13 11:40:54 · 408135 阅读 · 85 评论