转载地址: http://www.cnblogs.com/yoyoketang/p/6128655.html -------------------------------------------------------------------…
selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了. 常见场景: 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的. 这时候需要借助滚动条来拖动屏幕,使被操作的元素显示在当前的屏幕上. 滚动条是无法直接用定位工具来定位的.selenium里面也没有直接的方法去控制滚动条, 这时候只能借助J了,还好selenium提供了一个操作js的方法: execute_script(),可以直接执行js的脚本. 一.JavaScript简介…
虽然webdriver提供了操作浏览器的前进和后退的方法,但对于浏览器滚动条并没有提供相应的操作方法,以下使用的方法: 借助JavaScript来控制浏览器的滚动条,webdriver提供了execute_script()方法来执行JavaScript代码. 其实我们操作滚动条一般使用的场景:注册时的法律条文的阅读: <!--window.scrollTo(左边距,右边距):--> window.srollTo(0,650); window.scrollTo()方法用于设置浏览器窗口滚动条的水…
前言 在web自动化下载操作时,有时候会弹出下载框,这种下载框不属于web的页面,是没办法去定位的(有些同学一说到点击,脑袋里面就是定位!定位!定位!) 有时候我们并不是非要去定位到这个按钮再去点击,学会使用键盘的快捷键操作,也能达到一样的效果. 之前讲过一篇Selenium2+python自动化75-非input文件上传(SendKeys)这个当时是基于python2写的. 最近很多小伙伴开始用python3了,这个SendKeys在python3上没法用,python3需要用PyUserIn…
前言 文件下载时候会弹出一个下载选项框,这个弹框是定位不到的,有些元素注定定位不到也没关系,就当没有鼠标,我们可以通过键盘的快捷键完成操作. SendKeys库是专业的处理键盘事件的,所以这里需要用SendKeys解决 只支持python2环境 python3 的用 PyUserInput 看这篇 selenium+python自动化85-python3.6上SendKeys报错用PyUserInput取代 一.下载场景 1.当点到下载按钮时候,会弹出如下页面 2.如果想点“保存文件”按钮,解决…
前言 selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了. 常见场景: 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的. 这时候需要借助滚动条来拖动屏幕,使被操作的元素显示在当前的屏幕上. 滚动条是无法直接用定位工具来定位的.selenium里面也没有直接的方法去控制滚动条, 这时候只能借助J了,还好selenium提供了一个操作js的方法: execute_script(),可以直接执行js的脚本. 一.JavaScrip…
前言 selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了. 常见场景: 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的. 这时候需要借助滚动条来拖动屏幕,使被操作的元素显示在当前的屏幕上. 滚动条是无法直接用定位工具来定位的.selenium里面也没有直接的方法去控制滚动条, 这时候只能借助J了,还好selenium提供了一个操作js的方法: execute_script(),可以直接执行js的脚本. 一.JavaScrip…
前言 selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了. 常见场景: 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的. 这时候需要借助滚动条来拖动屏幕,使被操作的元素显示在当前的屏幕上. 滚动条是无法直接用定位工具来定位的.selenium里面也没有直接的方法去控制滚动条, 这时候只能借助J了,还好selenium提供了一个操作js的方法: execute_script(),可以直接执行js的脚本. 一.JavaScrip…
利用selenium+python写的一个关于登录的自动化脚本…
Selenium2+python自动化之读取Excel数据(xlrd) 转载地址:http://www.cnblogs.com/lingzeng86/p/6793398.html ···························································································································…
前言 登录页面会遇到滑动解锁,滑动解锁的目的就是为了防止别人用代码登录(也就是为了防止你自动化登录),有些滑动解锁是需要去拼图这种会难一点. 有些直接拖到最最右侧就可以了,本篇讲下使用 selenium web 自动化的时候如何滑动解锁. 滑动解锁场景 看下图,是我本地写的一个 slider.html 网页 除了输入账号和密码,还需将滑块拖动到最右端才能解锁 最后才去点登陆按钮 ActionChains 滑动滑块 查看 ActionChains 使用源码,相关介绍 ActionChains是一种…
前言 页面嵌套了iframe,这个iframe又是可以滚动的,如何操作iframe上的滚动条? 示例 写一个html页面案例,源码如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <iframe src="…
1.参考 利用 Python + Selenium 自动化快速截图 利用 Python + Selenium 实现对页面的指定元素截图(可截长图元素) 使用python获取系统所有进程PID以及进程名称 python锁定焦点到指定进程窗口的参考方法 2.改进js代码,下拉和上拉,精确判断加载是否结束 #!/usr/bin/env python# -*- coding: UTF-8 -*import time from selenium import webdriverfrom selenium.…
前言 背景介绍:做wap页面自动化的时候,把url地址直接输入到浏览器(chrome浏览器有手机wap模式)上测试,有个按钮死活点不到,用wap模式的触摸事件也无法解决,后来想用jquery去执行点击. 发现报$ is not defined. # coding:utf-8 # 作者:上海-悠悠 import time from selenium.webdriver.chrome.options import Options from selenium import webdriver from…
环境准备 前言 selenium在windows机器上运行,每次会启动界面,运行很不稳定.于是想到用chrome来了的headless无界面模式,确实方便了不少. 为了提高自动化运行的效率和稳定性,于是把selenium自动化环境部署到linux服务器上,这样更方便. 环境: centons 7.6 python 3.6 chrome 77.0.3865.90 chromedriver 77.0.3865.40 selenium 3.14 安装最新版chrome 方法一:下载到本地后安装 先下载…
前言 在使用selenium做UI自动化的时候,发现有些弹出窗上的输入框,输入文本后,使用clear()方法无效. 这样会导致再次输入时,字符串不是清空后输入,而是跟着后面输入一长串,导致结果不准. 经过几次尝试,先click()点击该输入框,再输入,发现还是无效,最终有以下2种方法可以解决 使用双击输入框后,全选文本再输入就可以了 使用js清空输入框文本 问题描述 在有些弹出的页面上,输入框输入文本,是可以正常输入的,比如我第一次输入测试数据:yoyo 第二次,我想换个测试数据,先clear,…
流程: 环境准备 eclipse :需安装pydev.testng插件 python :安装python完成后,需 pip下安装selenium:命令: pip install selenium 我现在的环境:eclipse[ Neon.3 Release (4.6.3)]+JDK1.8+python3.6.3+pydev 6.4.4+selenium3.8.1 2  eclipse创建python项目 1  src:框架主要代码,很重要!!其中,framework主要实现 配置文件的读取,日志…
自动化按步骤拆分的话,可以分为四步操作:定位元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告.本篇接下来讲基本的八种元素定位方法.说的通俗一点,就是教大家找对象. 万物皆对象,所谓的对象,就是你喜欢的那个女神,她就是你的对象.既然是对象,她就有属性,比如眼睛大,头发长,皮肤白,颜值高.这些都是她的属性,每个属性又有对应的属性值,如眼睛="大",头发="长",颜值="高",对应的=后面就是它的属性的值. 同样的道…
一.打开网站 1.第一步:从selenium里面导入webdriver模块 2.打开Firefox浏览器(Ie和Chrome对应下面的) 3.打开百度网址 二.设置休眠 1.由于打开百度网址后,页面加载需要几秒钟,所以最好等到页面加载完成后再继续下一步操作 2.导入time模块,time模块是Python自带的,所以无需下载 3.设置等待时间,单位是秒(s),时间值可以是小数也可以是整数 三.页面刷新 1.有时候页面操作后,数据可能没及时同步,需要重新刷新 2.这里可以模拟刷新页面操作,相当于浏…
一.Python安装 1.操作系统:win7 64位系统 2.下载Python安装包,选择2.7版本和3.6版本都可以(最好安装2.7版本稳定)官网下载地址:https://www.python.org/ 3.Python安装,双击傻瓜式安装 4.安装目录在d盘:D:\python 二.环境变量 1.安装完成后,看下这个目录D:\python\Scripts,有没pip.exe和easy_install.exe这两个文件(一般都有) 2.将D:\python和D:\python\Scripts路…
1.selenium安装: pip install -U selenium参考:https://pypi.python.org/pypi/selenium#downloads2.下载firefox驱动:https://github.com/mozilla/geckodriver/releases3.把geckodriver.exe所在目录配置到path环境变量4.一个简单示例: from selenium import webdriver driver=webdriver.Firefox() #…
前言 前一篇autoit实现文件上传打包成.exe可执行文件后,每次只能传固定的那个图片,我们实际测试时候希望传不同的图片. 这样每次调用的时候,在命令行里面加一个文件路径的参数就行. 一.命令行参数 1.参数化传入的参数,可以通过autoit的命令行参数: myProg.exe param1 "This is a string parameter" 99 在脚本中,可用以下变量获取命令行参数: $CmdLine[0] ; = 3 $CmdLine[1] ; = param1 $Cmd…
遇到问题 报错信息:sys.meta_path is None, Python is likely shutting down 1.我的环境: python 3.6 selenium 2.53.6 chrome 65 chromedriver 2.33.50 2.执行代码: # 作者:上海-悠悠 from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.cnblogs.com/yoyoke…
前言 selenium多线程跑用例,这个前面一篇已经解决了,如何生成一个测试报告这个是难点,刚好在github上有个大神分享了BeautifulReport,完美的结合起来,就能生成报告了. 环境必备: python3.6 : BeautifulReport不支持2.7 tomorrow : pip install tomorrow安装 BeautifulReport : github下载后放到/Lib/site-packages/目录下 BeautifulReport 1.BeautifulR…
前言 假设执行一条脚本(.py)用例一分钟,那么100个脚本需要100分钟,当你的用例达到一千条时需要1000分钟,也就是16个多小时... 那么如何并行运行多个.py的脚本,节省时间呢?这就用到多线程了,理论上开2个线程时间节省一半,开5个线程,时间就缩短五倍了. 项目结构 1.项目结构跟之前的设计是一样的: case test开头的.py用例脚本 common 放公共模块,如HTMLTestRunner report 放生成的html报告 run_all.py 用于执行全部脚本 2.case…
前言 selenium+phantomjs可以打开无界面的浏览器,实现静默模式启动浏览器完成自动化测试,这个模式是极好的,不需要占用电脑的屏幕. 但是呢,phantomjs这个坑还是比较多的,并且遇到问题也看不到页面,无法排查问题. 事实上Chrome浏览器也是可以实现静默模式,在电脑上不显示页面,也能实现自动化测试. 小编环境: python 3.6 selenium 3.6.0 chrome 63.0.3239.84 chromdriver 2.33.506120 (我这个配置是亲测可行的,…
遇到问题 1.有些小伙伴在用pip安装selenium时候报 Read time out HTTPSConnectionPool(host='pypi.python.org' port443) 2.估计这些电脑不怎么正经,总是有奇葩问题 time out解决办法 1.如果是因为网速问题,超时了,可以加大pip安装时候的超时时间 pip --default-timeout=1000 install selenium==2.53.6 2.要是发现等了几分钟还是跟蜗牛一样在爬,那就设置个代理,用下面方…
优化html报告 为了满足小伙伴的各种变态需求,为了装逼提升逼格,为了让报告更加高大上,测试报告做了以下优化: 测试报告中文显示,优化一些断言失败正文乱码问题 新增错误和失败截图,展示到html报告里 优化点击截图放大不清晰问题 增加饼图统计 失败后重试功能 兼容python2.x 和3.x 报告效果 1.生成的测试报告效果如下图,默认展示报错和异常的用例,失败重试的用例结果也会统计进去. 2.点击显示截图,可以直接显示截取的图片,无需保存到本地 table表格 1.修改表格的td后面内容,可以…
前言 关于非input文件上传,点上传按钮后,这个弹出的windows的控件了,已经跳出三界之外了,不属于selenium的管辖范围(selenium不是万能的,只能操作web上元素).autoit工具处理windows的控件窗口是专业的,所以这个需借助AutoIt来解决了. 一.环境准备 1.可以autoit官网上下载,安装 http://www.autoitscript.com/site/ 2.下载到本地后傻瓜式安装,安装完之后在应用程序找到这个Autoit v3 3.AutoIt里面几个菜…
1.安装python,下载地址:http://python.org---安装版本3.5.1 ps:自带setuptools和pip工具 2.然后,用pip安装开发Web App需要的第三方库:异步框架aiohttp:$pip install aiohttp 3.前端模板引擎jinja2:$ pip install jinja2 4.MySQL 5.x数据库,从官方网站下载并安装,安装完毕后,请务必牢记root口令---test234 5.MySQL的Python异步驱动程序aiomysql:$…