前言:最近在做基于RF框架的Web自动化测试,其中涉及到元素的定位,主要用到id.name.xpath.css四中定位方法,尤其后面的两种方法特别有效,可以解决大部分的定位问题. id和name定位 假设把一个元素看做是一个人的话,那么name就相当于人的姓名.id近似于人的身份证号:当然,id和name的属性值是否唯一是需要看前端工程师是怎么进行设计的. 这里我们使用大家常用的百度首页输入框和搜索按钮进行验证: html源码: 输入框: <input id="kw" name=…
步骤: 1.通过前端工具,查看元素的属性 2.通过属性定位 iddriver.findElement(By.id("kw")) namedriver.findElement(By.name("wd")) classname 类名driver.findElement(By.className("s_ipt")) tagname 标签名driver.findElement(By.tagName("input")) linktext…
方法一 使用SDK中附带的uiautomatorviewer来定位 在SDK安装目录下的tools下有个uiautomatorviewer.bat批处理文件点击运行 运行后(注意appium desktop运行状态才能使用工具进行定位) 方法二 使用appium desktop进行定位 启动 运行 配置 { "platformName": "Android", "platformVersion": "7.1.1", "…
1.name定位 driver.find_element_by_id(') driver.find_element_by_id(') driver.find_element_by_name('登录').click() 所以,我们暂时可以把元素的text 属性看作name 来使用.如果你的app不能正常的定位元素,那就换其它定位方式吧. 2).id定位 driver.find_element_by_id('com.shanjian.originaldesign:id/edit_Tel').send…
自动化按步骤拆分的话,可以分为四步操作:定位元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告.本篇接下来讲基本的八种元素定位方法.说的通俗一点,就是教大家找对象. 万物皆对象,所谓的对象,就是你喜欢的那个女神,她就是你的对象.既然是对象,她就有属性,比如眼睛大,头发长,皮肤白,颜值高.这些都是她的属性,每个属性又有对应的属性值,如眼睛="大",头发="长",颜值="高",对应的=后面就是它的属性的值. 同样的道…
很早之前就已经写过自动化了,不过点着功能久了就会容易忘记元素定位,尤其是xpath和css定位,所以就花点时间做下总结收集. xpath有两种定位: 一.绝对路径(不推荐使用,除非已经使用了所有方式仍然无法定位)方法:根据实际目录,逐层输写.例子: find_element_by_xpath("/html/body/div[1]/span/input/a")  # div[1]指第1个元素二.相对路径(推荐使用) 方法:找到元素有”精准元素“即唯一能标识的属性: # 1.通过id定位(…
前言 在混合开发的App中,经常会有内嵌的H5页面.那么这些H5页面元素该如何进行定位操作呢? 针对这种场景直接使用前面所讲的方法来进行定位是行不通的,因为前面的都是基于Andriod原生控件进行元素定位,而Web网页是单独的B/S架构,两者的运行环境不同因此需要进行上下文(context)切换,然后对H5页面元素进行定位操作. context简介 Android源码中的注释是这么来解释Context的: Interface to global information about an appl…
自动化测试均需要遵循由点到面的规则,然而对于UI自动化,点是最容易发生变化的,如果使用硬链接,那么每次元素的修改都必须修改代码,这对于代码功底薄弱的测试工程师来说,是较为困难的,所以自动化测试需要对底层基本元素进行封装 1.首先就是元素的获取方式 我推荐使用CSV的文件格式对元素进行存储和维护,并给每个元素起个别名,这样之后元素维护只需要修改CSV表中具体的元素的,可简化维护工作,CSV文件内的格式如下: 模块名称,自定义的元素名称,元素定位信息,描述 Login&Register,login_…
做ui自动化的最基础的就是页面元素定位了,如果连页面元素都定位不到,自动化从何谈起呢?接下来我们就看看页面元素定位的方法吧!(这里就用百度页面来进行演示) 一.最通用的几种定位方式: 1.通过id定位 driver.find_element_by_id('su') 2.通过name定位 driver.find_element_by_name('mp') 3.通过class属性 driver.find_element_by_class_name('s_ipt') 4.通过文本链接 driver.f…
坚持原创输出,点击蓝字关注我吧 作者:清菡 博客:oschina.云+社区.知乎等各大平台都有. 目录 一.App 元素定位方式 二.元素操作 三.测试混合应用 四.以代码的方式执行 Pytest 命令 五.App 自动化分层设计 App 自动化目前用得是 Appium,有 Python 版本的Uiautomator2.这个是直接通过Uiautomator2去做的,一个是利用中间的 Appium 去做.Appium 跨平台跨语言. 一.App 元素定位方式 坐标.id.xpath.android…