appium-desktop定位元素原理】的更多相关文章

今天在定位真机APP的时候,弹出框的内容死活定位不到,只能定位到背景的内容. 问题:appium desktop 定位弹出框时报错,定位不到,只能定位到背景的内容. 分析: 定位工具找不到弹出框的元素. 解决: 通过坐标来定位. 上代码: size=driver.get_window_size() x=size["width"] y=size["height"] driver.tap([(x,y)],500)   ###这个地方可以是绝对坐标,也可以是相对坐标.相对…
初衷 最近在编写Android App自动化用例,其中元素定位相对来说耗费的时间比较长.我们都知道Appium-desktop拥有自己的录制功能,我们就在想是不是可以把录制功能跟我司的自动化框架(ATK)打通,直接生成我们框架可以识别的自动化脚本,甚至可以产出java版的IDE.这样就可以节省大量的元素定位和脚本编写时间.所以最近通过debug分析Appium-desktop的源码,梳理了Appium-desktop定位/查找元素的原理. 由于appium-desktop使用react编写了大量…
Windows上定位元素我用的是uiautomatorviewer 这个工具在你的SDK-tools目录下,点击uiautomatorviewer.bat启动,注意appium在跑的时候是取不到的 工具使用很简单,在你的设备想要定位元素的页面点击Device Screenshot或Device Screenshot with Compressed Hierarchy 如果同一属性有多个元素公用,那么定位的是第一个 下面说下对应关系 driver.findElementByName("杭州&quo…
文章写得很好,转载备用 一.常用识别元素的工具 uiautomator:Android SDK自带的一个工具,在tools目录下 monitor:Android SDK自带的一个工具,在tools目录下 Appium Inspector:Appium自带的一个功能,只有mac下可以使用该功能   下面是用monitor抓取到的页面元素     下面使用Appium Inspector定位的元素   二.元素定位   1.格式:find_element_by_定位方式(value)   通过id定…
本次以微信为例, 使用Appium自带的Inspector定位工具定位元素, 以及进行最最最简单脚本的录制: capabilities = { "platformName": "Android", "platformVersion": "7.1.1", "deviceName": "3216e430", "browserName": "", &qu…
Selenium  如何定位动态元素: 测试的时候会遇到元素每次变动的情况,例如: <div id="btn-attention_2030295">...</div> 这个id 可能每次都不同,所以如何定位到该类元素呢? 1. 根据其他属性定位 如果有其他固定属性,最先考虑的当然是根据元素的其他属性来定位,定位方式那么多,何必在这一棵树上吊死.. 2.根据相对关系定位 根据其附近的父节点.子节点.兄弟节点定位,关于这方面,博主之前的一篇文章可作为参考:Pytho…
 常用的appium元素定位工具: (1)Android SDK 中提供的元素定位工具uiautomatorviewer: (2)AppiumDesktop提供的元素定位工具Appium Inspector : (3)自动化框架UIAutomator2提供的元素定位工具weditor:  常用元素定位方法: 1.通过resourceId定位 driver.find_element_by_id("more-icon") 2.通过text的文本属性定位 driver.find_elemen…
如文章<Appium基于安卓的各种FindElement的控件定位方法实践>所述,Appium拥有众多获取控件的方法.其中一种就是根据控件所在页面的XPATH来定位控件. 本文就是尝试通过自己的试验来尝试对Appium如何用xpath来定位控件做一个阐述,当中如有不对的地方敬请大家指出. 1. 背景 本文尝试使用的试验对象是SDK自带的NotePad应用实例,假设已经有两个Notes分别是"note1"和"note2"添加到Notepad上面,我们要做的…
--解决方法: 启动appium时配置中添加: "automationName":"uiautomator2" --扩展: 想支持安卓7.0及以上版本需要满足一下3点: 1.使用appium-desktop 1.6.3以及以上版本 2.启动appium的driver配置添加:"automationName":"uiautomator2" 3.确保5037端口没有被占用: 解释:使用appium-desktop 1.6.3以及以…
Appium-Server的配置,在之前的博文已有介绍,基于Python的Appium环境搭建合集,所以在此处就不详细介绍了.今天主要来分享下Appium-Server和Appium desktop在使用上的区别. 在这篇博文中分享了如何使用模拟器,Genymotion模拟器的安装及脚本制作,但还没分享如何使代码正常运行起来,接下来详细说明. 在谈起代码时,就需要先了解下appium的关键字 Appium 服务关键字 关键字 描述 实例 automationName 你想使用的自动化测试引擎 A…
之前我们已经安装了Appium Desktop,下面就让我们使用Appium Desktop实现页面元素定位 1.首先我们打开Appium Desktop,进入如下界面,点击Start Server v1.7.2  2.点击放大镜 3.点击放大镜后出现如下界面 4.看到 Desired Capabilities 选项 ,我想大家都熟悉了,在appium第3偏运行第一个appium测试脚本已经提到,如下代码,没错就是填写一些设备信息等 DesiredCapabilities capabilitie…
Appium Desktop除了可以做Server之外还可以进行元素定位和脚本录制功能,点击放大镜按钮,进入页面设置.开始配置Desired Capabilities. 配置Desired Capabilities可以通过左边逐条输入,右边的Json框会自动输入,也可以通过右边的Json框输入,点击输入框右上角的保存,左边会自动录入Json框的全部信息. 只有当两侧的信息都输入成功,才能进行另存为,运行session. 可以将配置结果另存为(这里另存为CalculatorApp),下次启动就不再…
方法一 使用SDK中附带的uiautomatorviewer来定位 在SDK安装目录下的tools下有个uiautomatorviewer.bat批处理文件点击运行 运行后(注意appium desktop运行状态才能使用工具进行定位) 方法二 使用appium desktop进行定位 启动 运行 配置 { "platformName": "Android", "platformVersion": "7.1.1", "…
一.获取手机信息 adb devices获取手机或模拟器的设备名 aapt dump badging xxxx.apk获取app的包名.入口等基本信息 如果想要知道手机原生携带的app的基本信息,首先是无法获取到这个apk软件包,也就无法用aapt的方法来获取对应的信息.此时可以通过抓取日志的方法获取基本信息. 举例:想要获取到手机功能---设置  的基本信息.最终可以通过代码或appium客户端链接手机,并自动启动手机的设置功能 方法: 1.关闭手机后台运行的所有程序 2.打开手机日志 在cm…
定位元素规则 和 Selenium Web自动化一样,要操作界面元,必须先定位(选择)元素. Appius是基于 Selenium的,所以和 Selenium代码定位元素的基本规则相同 find element by_XX方法,返回符合条件的第一个元素,找不到抛出异常find elements_by XXx方法,返回符合条件的所有元素的列表,找不到返回空列表通过 WebDriver对象调用这样的方法,直找范围是整个界面通过 WebElement对象调用这样的方法,查找范围是该节点的子节点 界面元…
一.常用识别元素的工具 uiautomator:Android SDK自带的一个工具,在tools目录下 monitor:Android SDK自带的一个工具,在tools目录下 Appium Inspector:Appium自带的一个功能,只有mac下可以使用该功能   下面是用monitor抓取到的页面元素     下面使用Appium Inspector定位的元素   二.元素定位   1.格式:find_element_by_定位方式(value)   通过id定位 (取resource…
appium 使用findElementByAndroidUIAutomator 定位元素示例 import io.appium.java_client.remote.MobileCapabilityType; import io.appium.java_client.remote.MobilePlatform; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.openqa.se…
转载原文:https://www.jianshu.com/p/efe9dcf8bbaf 一.定位工具 在安装appium环境的时候我们已经安装了SDK,里面就自带有元素定位的工具,位置在.../sdk/tools/uiautomatorviewer.bat,由于安装路径各有不同,如果实在找不到可以具体路径,可以在电脑中查找uiautomatorviewer.bat文件,找到后双击打开即可,初始界面如下:       打开工具后,将手机连接电脑,这里要提醒的是,该工具只能获取手机当前的界面截图,而…
前言: 最近在做IOS自动化测试,IOS的Appium环境都配置OK,执行起来真的慢,慢到怀疑人生,那么今天就来总结一下IOS定位方式和各个定位方式的速度排序. 据我观察,按查找元素的顺序速度,从快到慢的顺序如下: ios_predicate >> accessibility_id >> class_name >>xpath 注⚠️:(论坛比较多的说法是class_name>>accessibility_id,在这里我们姑且认为它们的速度是一样的.) 1.元…
1. 背景 本文尝试使用的试验对象是SDK自带的NotePad应用实例,假设已经有两个Notes分别是“note1”和“note2”添加到Notepad上面,我们要做的就是尝试用xpath的方法来定位“note2”这个ListView下面的TextView控件. 注意界面上有3个TextView类型的控件: 最上面的作为整个ListView的Title文本为“Notes”的TextView,Index为0 中间的文本为“note2”的TextView,Index也是0 最下面的文本为“note1…
任何自动化测试,其实手动测试也是一样的,元素定位(目标定位)是首要任务,这是最直接的测试对象呀! 好了,废话不多说,又到了元素定位啦,之前我们已经介绍过selenium及appium常用的定位方法,下面再单独介绍下Robotframework-AppiumLibrary常用元素定位方法,其实它们的思想是一样的,只是格式上有些差异,详情如下: AppiumLibrary需要在应用程序中查找元素的所有关键字都使用参数locator.当提供locator值时,它将与特定元素类型的键属性进行匹配. 常用…
前言 如何高效管理定位元素,这个是很有学问的问题,也是面试必问的[以下纯属个人观点,勿喷!]. 有的人用xml管理页面定位元素,这种逼格略高,但是小编认为学习成本大,贼麻烦. 有的人提到用excel管理页面定位元素,这种略显逼格,至少做到了数据分离,但是读取excel太慢,不够高效,还得在excel里面维护,忒麻烦. 有的人说把定位元素放数据库管理,这种除了装逼,没觉得有多高效,当然有小伙伴提到接口测试数据量比较大的时候,这种方法还可以. 有的人用pageobject模式,直接在page类写定位…
元素定位主要介绍如何使用uiautiomatorviewer,通过定位到页面上的元素,然后进行相应的点击等操作.uiautiomatorviewer是android-sdk自带的一个元素定位工具,非常简单好用,使用uiautomatorviewer,你可以检查一个应用的UI来查看应用的布局和组件以及相关的属性. 一.启动uiautomatorviewer.bat 1.打开目录D:\androidsdk\android-sdk-windows\tools 2.双击启动,启动之后出现如下界面: 3.…
1. 元素定位 写完上一篇元素定位的博客,发现实用性基本为零.这几天真的烦死我了,一直在找资料,还去看了一遍appium官网文档.最后结合着selenium的定位方法,测试出几种可行的元素定位方法. 1.1 层级定位 什么是层级定位呢? 在很多的自动化中如果只是靠简单的定位是没有办法完成自动化的.有的元素的id.name.className都是一样的,xpath定位效率低下,并且在appium中,可以使用的属性非常少,这个时候我们就需要使用层级定位了. 我们可以看到,QQ天气和微视的class都…
1. 元素定位 对于自动化测试来说,核心技能就是对象的定位了.不管是web页面上的按钮或输入框,还是移动app上的一个按钮或输入框,我们要想对其进行点击或输入操作,前提是要先找到这个对象. webdriver提供了八种元素定位的方法: id name class name tag name link text partial link text xpath css selector 在python语言中对应的定位方法如下: find_element_by_id() find_element_by…
环境: 1.Appium: 1.15.1 2.Python: 3.7.0 3.Selenium: 3.141.0 4.IDE: Pycharm 5.PC:Windows 10 问题:在 Pycharm 中输入 driver.find_element_by_后可以直接联想出name这个,然后就通过这个name属性去定位界面元素,在运行时居然报 "Locator Strategy 'name' is not supported for this session",从这个错误来看,显然可以看…
一.元素定位工具 app应用的元素使用的是控件定位,不同于web网页,web网页定位元素通常使用的是F12工具,那么在app当中我们则要借助其它的工具来辅助定位. 1.uiautomatorviewer.bat uiautomatorviewer.bat工具在安装完ADT工具之后,位于ADT安装路径的android-sdk-windows\tools\bin目录下 双击启动即可,启动之后,在初始界面上,点击如图位置按钮可以进行截屏 截屏后即可查看各个元素,截屏后的效果: 2.appium检查器…
目录 操作步骤 Python操作该混合App代码 Appium在操作混合App或Android App的H5页面时, 常常需要定位H5页面中的元素, 传统方式是 翻墙 + 使用Chrome://inspect来定位元素, 环境准备相当繁琐, 不仅需要想办法翻墙, 而且还需要Android设备安装Google框架以及手机版Chrome浏览器以及相应的chromedriver. 最近发现使用Appium Inspector即可实现H5页面元素的定位, 不需要额外安装任何软件. 操作步骤 启动夜神模拟…
一.常用识别元素的工具 uiautomatorviewer:Android SDK自带的一个工具,在tools目录下     二.元素定位   1.格式:find_element_by_定位方式(value)   通过id定位 (取resource-id的值): driver.find_element_by_id("com.wuba.zhuanzhuan:id/azo") 也可以直接用id后面的内容driver.find_element_by_id("azo")  …
一.appium-desktop功能介绍 1.打开appium-desktop,点击start session 2.打开后,点击屏幕右上角的搜索按钮 3.然后会打开配置页面,在本地服务配置信息同上面写的代码链接配置.填入正确的信息后,建议先点击保存,再点击start Session. 4.成功启动模拟器中的qq程序.如下图.此时如果模拟器和appium-desktop中界面不同,可点击刷新按钮同步下,按钮的功能如下: 二.定位方式 点击定位元素按钮,点击左侧app界面中的登录定位元素后,就会出现…