Appium定位元素】的更多相关文章

定位元素规则 和 Selenium Web自动化一样,要操作界面元,必须先定位(选择)元素. Appius是基于 Selenium的,所以和 Selenium代码定位元素的基本规则相同 find element by_XX方法,返回符合条件的第一个元素,找不到抛出异常find elements_by XXx方法,返回符合条件的所有元素的列表,找不到返回空列表通过 WebDriver对象调用这样的方法,直找范围是整个界面通过 WebElement对象调用这样的方法,查找范围是该节点的子节点 界面元…
1.关于没有name,没有ID的元素的定位---通用篇解题思路:因为没有name,id:其实剩下的选择已不多,要么xpath,要么className.xpath木有好印象(稳定性不高,加之1.0x后需要写全路径,相当崩溃),我决定十分个人色彩的建议使用className.具体方法:用className获取所有该类型的元素:根据元素的位置确定元素的index;获取目标元素.示例:List<WebElement> lis = driver.findElementsByClassName("…
Appium使用WebDriverAgent之后,新增了一种定位方法iOSNsPredicate,总结了一下使用方法: MobileElement photo = driver.findElementByIosNsPredicate("name = 'head new'"); // 等于 MobileElement photo = driver.findElementByIosNsPredicate("name LIKE '*new'");  // 模糊匹配 Mob…
一.常用识别元素的工具 uiautomator:Android SDK自带的一个工具,在tools目录下 monitor:Android SDK自带的一个工具,在tools目录下 Appium Inspector:Appium自带的一个功能,只有mac下可以使用该功能   下面是用monitor抓取到的页面元素     下面使用Appium Inspector定位的元素   二.元素定位   1.格式:find_element_by_定位方式(value)   通过id定位 (取resource…
Windows上定位元素我用的是uiautomatorviewer 这个工具在你的SDK-tools目录下,点击uiautomatorviewer.bat启动,注意appium在跑的时候是取不到的 工具使用很简单,在你的设备想要定位元素的页面点击Device Screenshot或Device Screenshot with Compressed Hierarchy 如果同一属性有多个元素公用,那么定位的是第一个 下面说下对应关系 driver.findElementByName("杭州&quo…
无论是selenium还是appium,元素定位都是我们开始实现自动化面临的第一个问题.selenium还好,我们可以在浏览器的调试页面进行元素定位还是蛮方便的.那么appium怎么做呢? 我看到很多资料,帖子都是说的appium自带的Inspector这个工具进行的元素定位.而笔者不知道是电脑还是什么的问题,这个工具是无法使用的.今天给大家说的是另一个工具. uiautomatorviewer 这个工具是在我们Android的SDK的tools的文件夹里面的.使用方法也很简单.这里我以安卓模拟…
文章写得很好,转载备用 一.常用识别元素的工具 uiautomator:Android SDK自带的一个工具,在tools目录下 monitor:Android SDK自带的一个工具,在tools目录下 Appium Inspector:Appium自带的一个功能,只有mac下可以使用该功能   下面是用monitor抓取到的页面元素     下面使用Appium Inspector定位的元素   二.元素定位   1.格式:find_element_by_定位方式(value)   通过id定…
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…
前言: 最近在做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…
本次以微信为例, 使用Appium自带的Inspector定位工具定位元素, 以及进行最最最简单脚本的录制: capabilities = { "platformName": "Android", "platformVersion": "7.1.1", "deviceName": "3216e430", "browserName": "", &qu…
前言 如何高效管理定位元素,这个是很有学问的问题,也是面试必问的[以下纯属个人观点,勿喷!]. 有的人用xml管理页面定位元素,这种逼格略高,但是小编认为学习成本大,贼麻烦. 有的人提到用excel管理页面定位元素,这种略显逼格,至少做到了数据分离,但是读取excel太慢,不够高效,还得在excel里面维护,忒麻烦. 有的人说把定位元素放数据库管理,这种除了装逼,没觉得有多高效,当然有小伙伴提到接口测试数据量比较大的时候,这种方法还可以. 有的人用pageobject模式,直接在page类写定位…
APPIUM Android 定位方式   1.定位元素应用元素 1.1通过id定位元素 Android里面定位的id一般为resrouce-id: 代码可以这样写: WebElement element = driver.findElement(By.id("com.tencent.mm:id/do")); 或者: driver.findElementById("com.tencent.mm:id/do") 下面的例子展示的是通过id定位到元素并点击: @Test…
环境: 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",从这个错误来看,显然可以看…
一.appium-desktop功能介绍 1.打开appium-desktop,点击start session 2.打开后,点击屏幕右上角的搜索按钮 3.然后会打开配置页面,在本地服务配置信息同上面写的代码链接配置.填入正确的信息后,建议先点击保存,再点击start Session. 4.成功启动模拟器中的qq程序.如下图.此时如果模拟器和appium-desktop中界面不同,可点击刷新按钮同步下,按钮的功能如下: 二.定位方式 点击定位元素按钮,点击左侧app界面中的登录定位元素后,就会出现…
一.获取手机信息 adb devices获取手机或模拟器的设备名 aapt dump badging xxxx.apk获取app的包名.入口等基本信息 如果想要知道手机原生携带的app的基本信息,首先是无法获取到这个apk软件包,也就无法用aapt的方法来获取对应的信息.此时可以通过抓取日志的方法获取基本信息. 举例:想要获取到手机功能---设置  的基本信息.最终可以通过代码或appium客户端链接手机,并自动启动手机的设置功能 方法: 1.关闭手机后台运行的所有程序 2.打开手机日志 在cm…
如果你还想从头学起Appium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1693896.html 前言 前面介绍过根据id,classname, accessibilityid,xpath来定位元素,其他这些方法底层都是利用了 UI Automator 的 API 功能实现的 UI Automator 介绍 UI Automator 测试框架提供了一组 API 来构建 UI 测试,用于在用户应用和系统应用中执行交互 利用 UI…
在使用appium做app自动化测试的过程中,可能会遇到元素的属性值不是唯一的情况,导致不能通过find_element_bi_xx()方法定位元素,这个时候我们就可以通过坐标来定位元素. 1,通过绝对坐标定位(不推荐) 在手机(或模拟器)的开发者选项里打开指针位置,任意点的绝对坐标都能获取到,如下A点的坐标为(542, 1362) 2,通过相对坐标定位(推荐) 更换不同分辨的测试机后,之前获取的手机某个位置点的绝对坐标就会改变,这样每次更换测试机都需要更改坐标,显然是不方便代码的维护,所以就需…
元素定位方式有多种,Android也有自身独有的定位方式.下面就单独介绍其基于uiautomator定位元素的方法: 基本语法: driver.find_element_by_android_uiautomator(xx) 1).通过text文本定位语法 new UiSelector().text("text文本") #text loc_text = 'new UiSelector().text("图书")' driver.find_element_by_andro…
使用 android_uiautomator 定位元素时(现在用的还不太熟,对于这个方法还需要加深了解)报错: 报错信息:The requested resource could not be found, or a request was received using an HTTP method that is not supported by the mapped resource 因为用的不熟,所以也是上网查了好多方法,最后检查代码的时候发现,原来是拼写错误 我将new UiSelect…