python+selenium写UI自动化的时候,经常会遇到需要切换iframe的情况,这里介绍几种切换iframe的方式 1.使用id定位 driver.switch_to.frame("id") 2.使用index定位 driver.switch_to.frame(index) 3.使用name定位 driver.switch_to.frame("name") 如果iframe既没有id也没有name属性,通过index也不好判断需要切换的iframe,那么需要…
浏览器及驱动下载 进行web UI 自动化时,需要安装浏览器驱动webdriver,Chrome浏览器需要安装chromedriver.exe 驱动,Firefox需安装 geckodriver.exe 驱动. Chrome 下载: http://www.slimjet.com/chrome/google-chrome-old-version.php http://google_chrome.en.downloadastro.com/old_versions/ http://filehippo.…
seleinum框架 框架的思想:  解决我们测试过程中的问题:大量的重复步骤,用自动化来实现    1)配置和程序的分离    2)测试数据和程序的分离    3)不懂编程的人员可以方便使用:使用的时候不需要写程序    4)有日志功能,实现无人值守    5)自动发报告    6)框架中不要有重复的代码,实现高度的封装和复用 推荐使用关键字驱动.混合驱动 为什么要编写程序呢? 通用性的东西满足不了个性化的需求 测试的工具:python+selenium 接口测试用例:excel 一.搭建自动…
一)框架目录的结构 二)config包当中的config.ini文件主要是用来存项目的绝对路径,是为了后续跑用例和生成测试报告做准备然后目前的配置文件大都会用yaml,ini,excel,还有.py也就是python文件来进行管理这里用的是ini文件. 三)config包当中的globalconfig文件主要是用来生成项目的路径,测试用例,测试报告的路径其中调用了ReadConfigIni这个类来读取ini格式的文件. 四)Data.xlsx主要是用来存放项目的url,账号和密码的通过excel…
web UI自动化项目实战-项目 项目使用禅道,所以你需要搭建1个禅道,搭建禅道的方法和步骤见 https://www.cnblogs.com/xinhua19/p/13151296.html 搭建UI自动化的框架 第一步,搭建框架,从配置文件信息开始,然后读取配置文件,然后是读取驱动. 第二步,对selenium中的一些方法做二次封装 第三步,封装页面的元素对象和元素的新增,删除,查询,修改等操作 第四步,测试用例层,设计测试用例 selenium读取配置文件的方法封装 有了配置config.…
许多人在执行脚本的时候会发现,明明自己的元素路径没写错啊!怎么还是报元素未找到的异常呢?是的,没错,你可能是遇上iframe啦!下面将介绍关于iframe的相关操作. 例子:以163邮箱登录页面为例 如果你直接去定位账号输入框元素的话是定位不成功的,看到上图标红处的箭头没,原来这个元素在iframe框架里面,要想定位这个元素,必须先切换到这个iframe内才行.我们先找到iframe这层.如下图: 代码: from selenium import webdriver # 导入webdriveri…
UI自动化页面上传文件,百度查的时候说有4中方法,简便的方法是安装SendKeys,但是百度说这个只支持python2.7的 我的python版本是3.7的,目前还只碰到了非<input type="file"...>的情况,所以用pywin32模块,等遇到其他情况再补充 前提:安装pywin32:pip install pywin32 解析:# 文件上传框,定位工具Winspy # 上传窗口  dialog(win32gui.FindWindo) 一级 # 子窗口:打开按…
在前几天工作中遇到一个问题,部署服务器,需要用rabbitmq自带的一个web UI监控组件,但是15672的端口没有对外映射.尝试了几种办法.开始修改rabbitmq.config,rabbitmq-ebv.config,总是不成功,因为修改的是rabbitmq-server的启动端口号,从外面访问的是web UI组件启动的端口号,两个是不一样的.然后尝试的rabbitmqadmin,因为web UI 监控页面也是调用的httpapi ,rabbitmqadmin是从官网下载一个文本文件赋予可…
在登录页面的onload方法中加入以下代码解决: //防止登录页面嵌入iframe框架 if (top.location != self.location){ top.location=self.location; } 其实这么做也不是很完美,因为要加载两次页面,屏幕会有些卡顿: 还有一种方法: 直接在过滤器LoginFilter中,加入以下代码: PrintWriter out = response.getWriter(); out.write("<script>window.pa…
Python搭建UI自动化环境 下载Python3 Python官网 PyCharm 环境配置 安装Python 勾选Add Python to PATH,一直下一步. 验证:CMD输入Python 下载Chrome Driver 点击下载chromedriver 将驱动放入Python根目录下 安装PyCharm 转载:安装教程 安装Selenium 打开PyCharm 新建Python File 点击面板底部 Terminal 输入pip install selenium 安装.pip li…