1.下载chromedriver.exe文件: 2.下载的chromedriver.exe文件放置在chrome的安装目录下XXX\Chrome\Application\ ; 3.设置path环境变量XXX\Chrome\Application,重新打开eclipse driver=webdriver.Chrome()…
前言 在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在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 方法一:下载到本地后安装 先下载…
原文链接:http://www.cnblogs.com/test-of-philosophy/articles/4322918.html 搭建平台:windows 1.安装python,下载地址:http://python.org/getit/: 2.安装setuptools,下载地址:http://pypi.python.org/pypi/setuptools.对于setuptools的安装,后来发现除了从网上下载相应的包,还可以使用ez_setup.py安装,这个似乎更简单快速一点.ez_s…
前言 背景介绍:做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+phantomjs可以打开无界面的浏览器,实现静默模式启动浏览器完成自动化测试,这个模式是极好的,不需要占用电脑的屏幕. 但是呢,phantomjs这个坑还是比较多的,并且遇到问题也看不到页面,无法排查问题. 事实上Chrome浏览器也是可以实现静默模式,在电脑上不显示页面,也能实现自动化测试. 小编环境: python 3.6 selenium 3.6.0 chrome 63.0.3239.84 chromdriver 2.33.506120 (我这个配置是亲测可行的,…
前言 登录页面会遇到滑动解锁,滑动解锁的目的就是为了防止别人用代码登录(也就是为了防止你自动化登录),有些滑动解锁是需要去拼图这种会难一点. 有些直接拖到最最右侧就可以了,本篇讲下使用 selenium web 自动化的时候如何滑动解锁. 滑动解锁场景 看下图,是我本地写的一个 slider.html 网页 除了输入账号和密码,还需将滑块拖动到最右端才能解锁 最后才去点登陆按钮 ActionChains 滑动滑块 查看 ActionChains 使用源码,相关介绍 ActionChains是一种…
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() #…
遇到问题 报错信息: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…
前言 如果想用多个浏览器跑同一套测试代码,driver=webdriver.Firefox()这里的driver就不能写死了,可以把浏览器名称参数化. 后续如果想实现多线程同时启动浏览器执行用例,用前面讲的tomorrow模块,设置下线程数套用下就可以了 启动浏览器 1.为了实现多个浏览器的灵活切换,可以把启动浏览器写一个函数,参数用浏览器名称就行了 def startBrowser(name): """ 打开浏览器函数,"firefox"."c…
一.使用Fiddler抓包 1.一般登陆网站成功后,会生成一个已登录状态的cookie,那么只需要直接把这个值拿到,用selenium进行addCookie操作即可. 2.可以先手动登录一次,然后抓取这个cookie,这里我们就需要用抓包工具fiddler了 3.先打开博客园登录界面,手动输入账号和密码(不要点登录按钮) 4.打开fiddler抓包工具,此时再点博客园登录按钮 5.登录成功后,再查看cookie变化,发现多了两组参数,多的这两组参数就是我们想要的,copy出来,一会有用 二.co…
前言 首先 selenium 是可以定位到隐藏元素的,但是 selenium 不能跟隐藏元素交互,也就是隐藏元素element不能使用element.click()方法. 隐藏元素element.text 虽然不会报错,但获取到的文本是空值 隐藏元素定位 登录之后,获取个人中心的账号内容,在页面上没显示,f12能看到,很明显这是个隐藏元素style="display: none;" from selenium import webdriver import time # 作者-上海悠悠…
前言 web页面操作的时候经常会遇到一闪而过的 dialog 消息,这些提示语一般只出现了几秒,过后元素节点就会在DOM中消失了. 本篇讲解下用chrome 浏览器如何定位一闪而过的 dialog 消息 dialog 场景 当点保存按钮后,页面弹出保存成功的提示框,这个提示框过1-2秒会自动消失 首先我们需要定位到此元素上,查看元素的属性相关信息,按f12 后鼠标还没来得及指上去就消失了,或者刚指上去,dom里面的元素就不见了. 暂停 dialog 打开chrome 浏览器,f12 后查看,打开…
出现问题 1.用selenium启动浏览器出现'Chrome正在受到自动软件的控制' 2.如果不想看到这种讨厌的提示语,启动浏览器时候加个配置就行了 disable-infobars 1.在浏览器配置里加个参数,忽略掉这个警告提示语 option = webdriver.ChromeOptions() option.add_argument('disable-infobars') 参考代码 # coding:utf-8 from selenium import webdriver # 加启动配置…
前言 selenium截取全图小伙伴们都知道,曾经去面试的时候,面试官问:如何截图某个元素的图?不要全部的,只要某个元素...小编一下子傻眼了, 苦心人,天不负,终于找到解决办法了. selenium截图 1.selenium提供了几个截取全屏的方法 get_screenshot_as_file(self, filename) --这个方法是获取当前window的截图,出现IOError时候返回False,截图成功返回True. filename参数是保存文件的路径. driver.get_sc…
利用selenium+python写的一个关于登录的自动化脚本…
前言 selenium截取全图小伙伴们都知道,曾经去面试的时候,面试官问:如何截图某个元素的图?不要全部的,只要某个元素...小编一下子傻眼了,苦心人,天不负,终于找到解决办法了. selenium截图 1.selenium提供了几个截取全屏的方法 get_screenshot_as_file(self, filename) --这个方法是获取当前window的截图,出现IOError时候返回False,截图成功返回True.filename参数是保存文件的路径. driver.get_scre…
添加python开发环境到eclipse:   点击help--install New Software 点击add,弹出新窗口: Name:填PyDev Location:填 http://pydev.org/updates 确认后会出现 PyDev,勾选Pydev. pydev for eclipse–> next–> accept–>finish file–> new–> project –>Pydev下 pydevProject   python的dev下载地址…
前言 页面嵌套了iframe,这个iframe又是可以滚动的,如何操作iframe上的滚动条? 示例 写一个html页面案例,源码如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <iframe src="…
前言 之前经常使用 execute_script() 方法执行 JavaScript 的来解决页面上一些 selenium 无法操作的元素,但是一直无法获取执行的返回值. 最近翻文档,发现 execute_script 是可以拿到 JavaScript 执行后的返回值的 演示案例 以打开https://www.cnblogs.com/yoyoketang/网页为示例,使用 JavaScript 来定位元素 目标元素元素属性 <a id="blog_nav_sitehome" cl…
Selenium2+python自动化之读取Excel数据(xlrd) 转载地址:http://www.cnblogs.com/lingzeng86/p/6793398.html ···························································································································…
前言 selenium定位一组元素,批量操作循环点击的时候会报错:Element not found in the cache - perhaps the page has changed since it was looked up 实现目标:批量点击标题,获取每个页面的url地址 代码如下: # coding:utf-8 from selenium import webdriver driver = webdriver.Firefox() driver.get("https://www.cn…
流程: 环境准备 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主要实现 配置文件的读取,日志…
前言 使用selenium 做web自动化的时候,经常会遇到这样一种需求,是否可以在已经打开的浏览器基础上继续运行自动化脚本? 这样前面的验证码登录可以手工点过去,后面页面使用脚本继续执行,这样可以解决很大的一个痛点. 命令行启动浏览器 首先右键Chrome浏览器桌面图标,找到chrome.exe的安装路径 复制地址C:\Program Files\Google\Chrome\Application 添加到环境变量Path下 打开cmd输入命令启动chrome浏览器 --remote-debug…
一.打开网站 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路…
selenium2+python的环境搭建主要需要python和selenium 1.python mac下自带了python,可以查看版本.当然可以选择安装其它版本的python. 2.selenium 在mac自带的终端里输入 sudo easy_install selenium即可完成安装 通过以上两步就完成了最基本的环境安装.一般选择firefox作为自动化测试对应的默认浏览器,当然也可以使用其它浏览器. 以firefox为例,我们可以执行以下python脚本,测试selenium能否正…
前言 前一篇autoit实现文件上传打包成.exe可执行文件后,每次只能传固定的那个图片,我们实际测试时候希望传不同的图片. 这样每次调用的时候,在命令行里面加一个文件路径的参数就行. 一.命令行参数 1.参数化传入的参数,可以通过autoit的命令行参数: myProg.exe param1 "This is a string parameter" 99 在脚本中,可用以下变量获取命令行参数: $CmdLine[0] ; = 3 $CmdLine[1] ; = param1 $Cmd…
前言 selenium多线程跑用例,这个前面一篇已经解决了,如何生成一个测试报告这个是难点,刚好在github上有个大神分享了BeautifulReport,完美的结合起来,就能生成报告了. 环境必备: python3.6 : BeautifulReport不支持2.7 tomorrow : pip install tomorrow安装 BeautifulReport : github下载后放到/Lib/site-packages/目录下 BeautifulReport 1.BeautifulR…