DOM结构 先来看几个名词和解释: dom: Document Object Model 文档对象模型 dom应用: 最早应用于html和js的交互。...一样,appium为移动端抽象出了一个控件模型,称为dom结构;会把所有的控件都理解为xml文件,在xml文件里,每个控件都有自己的类型和属性; 既然有了类型和属性,自然就可以根据这些来定位元素,又因为整个模型是...Appium 支持 WebDriver 定位策略的子集: 2.21 通过 “class” 查找 (例如, UI 组件的类型)-一般不推荐 这种就是通过判断控件类型来查找,例如TextView、ImageView...'画好一个封闭的圆'])[2]/following-sibling::*[@class='android.widget.RelativeLayout'])[2]") 很多控件都是有text属性的,但是appium...定位逻辑的区别 在之前的一篇文章中我们介绍过appium底层的使用了各种引擎,可在文章末尾往期回顾第一条点击查看。
今天我们先来和大家说一下appium,上一次说到了定位,不知道大家定位的怎么样了,今天来说如何定位xpath,五分钟即可学会: 例1: 现在我想定位下面这个登录按钮: xpath该怎么写呢?...先不管三七二十几,先写//,然后找你要定位元素最近的可以直接定位到的元素,我们看到home属性是content-desc: 所以我们就可以根据content-desc这个属性直接定位到上图红色home那里这些属性都在这个...[@content-desc='home']/android.view.View/android.view.View[2] 这样就可以定位到了,有两点说明 第一:xpath的索引从1开始,不是从0开始哦...再举个例子: 定位方框里的: 先写上//,然后看home那行,知道要这样写: //android.webkit.WebView[@content-desc='home'] 接着看到定位的View在ListView...android.widget.ListView/android.view.View[3] 大家不要只看,去自己写一个试试,我给你现成的代码,你复制过去,改一下相应的参数就可以用: # coding: utf-8 from appium
Appium提供了多种定位方式,最常见使用的是ID这种定位方式,如果控件有ID尽量使用ID来进行定位,因为有时候控件布局变化了,只要 ID不发生变化就有可能定位方式不需要修改。...那怎么来查看控件的ID呢?...然后通过这个属性值去调用Appium对应的定位方式的方法进行控件定位。...在实际项目中经常会碰到同一个页面相同的ID有多个的情况,这时候怎么去进行定位呢?...这时候假如要定位到资讯列表里第二行的资讯标题可以通过如下方式进行定位,也就是id加index来进行定位,具体代码如下所示: package appium.chapter2; import io.appium.java_client.AppiumDriver
appium中,IOS和Android元素定位方法有些不同。...1,accessibility_id 替代以前的name定位方式,在 iOS 上,主要使用元素的label或name(两个属性的值都一样)属性进行定位,如该属性为空,也是不能使用该属性。.../appium/blob/master/docs/en/writing-running-appium/ios_predicate.md 最后给个建议: 1 选择定位方式的判断: 如果显示在界面的文本唯一或是第一个出现...check_shouye() xpath定位方式在 XCUITest 底层原生不支持,由 appium 额外支持的,定位速度很慢,而且有时候定位不到元素的情况存在。...具体使用方法,请见:https://github.com/appium/appium-xcuitest-driver/pull/391 。
上篇文章介绍了ID的定位方式本文介绍控件跟文本的方式。 控件类型定位方式 接着我们来介绍下第二种定位方式,按控件类型的定位方式。...有时候控件没有id,这时候我们可以运用控件类型来定位,一个页面上相同类型的控件一般会有多个,因此按控件类型定位一般也会结合index来进行定位。...tab页,按控件类型FrameLayout定位的话,第二个tab页的index应该是2,也就是第三个,所以编写如下测试代码进行定位: package appium.chapter2; import io.appium.java_client.AppiumDriver...Appium并没有直接提供按文本定位的方法但可以通过其他定位方式来进行构造,假如想定位首页的问答页,如下图所示: 可以编写如下测试代码进行定位: package appium.chapter2; import...io.appium.java_client.AppiumDriver; import io.appium.java_client.android.AndroidDriver; import org.openqa.selenium.By
这是一个攻坚战,来首战斗音乐助兴 有朋友留言反应定位不到元素,没错,船长也为这个一直在头疼,我用的App是原生安卓+webService+h5类型的,定位虽然没问题,但是在进行操作的时候各种不通过...……真的很头疼啊……我这里说的“操作”是指例如:清空输入框、输入用户名之类的,但是定位是没问题的。...然后下载的小米计算器: 进行的操作是:12+1= # coding: utf-8 from appium import webdriver from time import sleep desired_caps...我想给大家写一些实用性强的,因为网上搜到的全是用计算器做例子,原因就在这——定位和操作不复杂,写起来轻松加愉快… 让船长再研究一下安卓原生和h5混合的App该怎么弄… 还要感谢@小麦苹果大神的指点哈
概述 iOS App和Android App由于系统差异原因,元素属性和定位方式也存在一些差异,之前分享过Android 元素定位方式: 众里寻他千百度—Appium Android 元素定位方式 本文将分享...Appium 从 Appium 1.6 开始支持 XCUITest。因此对于iOS 9.2以下的系统需要使用UIAutomation方式定位,iOS 9.2以上的版本需要使用XCUITest定位。...和iOS元素常用定位工具如下表所示: 工具 支持平台 说明 appium-inspector android,iOS native 官方appium-desktop安装包自带, 命令行安装没有该工具 app-inspector...的Appium-desktop工具来获取元素,下载Appium-desktop Mac版(dmg结尾的包名) 然后配置应用参数启动Appium-desktop,不太清楚操作流程可以参考之前的博文: Appium...).perform() #点击操作 滑动 滑动操作也和Android app应用操作一样,详见之前的博文: Appium滑动操作 报错相关 定位连接中断 ProtocolError: ('Connection
如果你还想从头学起Appium,可以看看这个系列的文章哦!...栗子一:定位【自动化测试】 ?...driver.find_element_by_xpath("//*[contains(@text,'自动化测试')]") print(test.text) 输出结果 自动化测试 自动化测试 自动化测试 栗子二:定位...= 2020-04-15 21:59 __Author__ = 小菠萝测试笔记 __Blog__ = https://www.cnblogs.com/poloyy/ """ # 导包 from appium
#这里的示例是用android来说明的,xpath应该是通用的,resource-id不太清楚,没配过IOS的环境 #环境配置和一些参数的意思不清楚可以看我上一篇python appium笔记(一) (...一)说明 主要说明下面2种方式,其实感觉通过xpath,不管selenium还是appium,应该能定位全部元素了。...USB调试 1、启动appium,点击下面的start server ?...1 from appium import webdriver 2 import time 3 desired_caps = { 4 'platformName':'Android', 5...') 20 my.click() 21 #定位意见反馈,通过resource-id定位 22 idea = driver.find_element_by_id('com.rae.cnblogs:id/ll_feedback
前言 appium定位app上的元素,可以通过id,name.class这些属性定位到 一、id定位 1.appium的id属性也就是通过UI Automator工具查看的resource-id属性 ?...2.如上图的定位,就可以通过id来定位 格式:driver.find_element_by_id("这里是resource-id") driver.find_element_by_id("com.taobao.taobao...:id/home_searchedit") 二、name定位 1、name定位就是通过UI Automator工具查看的text属性 (如果text属性为空,那就不能通过name属性定位了) ?...2.如上图的定位,就可以通过name来定位 格式:driver.find_element_by_name("这里是text") driver.find_element_by_name("搭配新宠不能缺"...定位就是通过UI Automator工具查看的content-desc属性 (当然下图这个元素的content-desc属性为空,就不能通过这个属性定位了,这里只是举个例子) ?
selenium有8种定位方法,appium有哪些定位方法呢?...实例代码 # coding=utf-8 from appium import webdriver import time,traceback desired_caps = {} # 定义字典:告诉...appium我们的一些配置 desired_caps['platformName'] = 'Android' # 固定值 desired_caps['platformVersion'] = '6'...,并将参数(字典)传入,执行完此句后,与appium创建一个session # 0.0.0.0:4723 try: driver.implicitly_wait(10) # 隐式等待,每0.5...根据xpath定位 driver.find_element_by_xpath() from appium import webdriver import time desired_caps = {
,我们主要依靠右下角的Node Detail信息进行定位。...buttons.pop(0).click() # 点击最后一个元素 buttons.pop().click() buttons.pop(-1).click() accessibility id 这个方法属于appium...find_element_by_link_text() find_element_by_partial_link_text() find_element_by_tag_name() 看一段代码: # coding: utf-8 from appium...,其实之前写了好多种,无奈它去乱点,根本不是想要定位的位置,比如我用class定位: 但是那一排的class是相同的,而且不能用find_elements_by_className()加索引的方式进行定位...大家也看到了,我的这个不知道为什么text就是不显示,似乎是应该可以显示的,不知道问题出在哪里 定位方式还有一个xpath,我也很关心这个该怎么用,但是我现在也不知道,不过似乎上面这些已经差不多可以进行用例编写了
如果你还想从头学起Appium,可以看看这个系列的文章哦!...:Appium Desktop的Inspector UIAutomatorviewer 的局限性 不能校验我们写的定位表达式是否正确定位到控件(类似浏览器上的F12) 连接不够稳定 不能模拟用户动作 Appium...Appium Server 注意:久了这里可能会为空,需要手动选择本地Appium Server哦 下方的Desired Capabilities 因为只是定位控件,所以写必传的参数就可以啦!...Inspector 定位控件界面的详细介绍 ? 怎么看功能都比UIAutomatorviewer丰富吧!...那串黄色背景色的英文 不建议使用XPath定位器,因为它很脆弱,建议让开发团队提供独特的可访问性定位器(即:resource-id) Attribute - Value 属性列表,后面用一篇文章单独讲解哦
元素定位工具 本章节讲解Android / IOS常用的元素定位工具,针对包括原生(APP)、Web(WEBVIEW)和混合(APP与WEBVIEW)。...导入后即可进行元素定位操作。 1.1.2Appium Inspector Appium Inspector是Appium Desktop附带的一个元素定位检查器,用来调试定位应用程序很方便。...Firebug和FirePath调试定位还是很方便的。...注意:当连接的设备是真机时,Chrome Inspect无法检测到Webview页面是怎么回事?...第2章 IOS 2.1APP 2.1.1Appium Inspector Appium Inspector是Appium Desktop附带的一个元素定位检查器,用来调试定位应用程序很方便。
3.本文是使用Python语言配合Appium进行讲解,其他语言相关教程不在此做赘述。...3.接上回 前一篇我们使用Appium成功启动了对应的被测APP,那么接下来我们将对自动化APP测试中非常重要的一环:元素定位进行深入的探索和实践。...4.定位原理 我们一般使用Python或Java语言调用相关的Client,那么Appium里就会通过Webdriver协议(Selenium里同样)在应用层进行HTTP方式的数据请求,那么收到请求的手机上的...Appium APP的Server就会解析相关的请求并且使用Appium提供的相应自动化测试方法去驱动手机做出相应的操作。...所以建议在定位元素前多用用Inspector中的元素搜索功能查看一下; 4.如果你是做iOS相关的APP自动化的话,尽量在元素定位的时候少用xpath方法来定位,即使是相对路径的方式也仍然会大大增加Appium
3.本文是使用Python语言配合Appium进行讲解,其他语言相关教程不在此做赘述。...3.接上回 前一篇我们使用Appium成功启动了对应的被测APP,那么接下来我们将对自动化APP测试中非常重要的一环:元素定位进行深入的探索和实践。...4.定位原理 我们一般使用Python或Java语言调用相关的Client,那么Appium里就会通过Webdriver协议(Selenium里同样)在应用层进行HTTP方式的数据请求,那么收到请求的手机上的...Appium APP的Server就会解析相关的请求并且使用Appium提供的相应自动化测试方法去驱动手机做出相应的操作。...所以建议在定位元素前多用用Inspector中的元素搜索功能查看一下;4.如果你是做iOS相关的APP自动化的话,尽量在元素定位的时候少用xpath方法来定位,即使是相对路径的方式也仍然会大大增加Appium
目录 一、常见属性的用法 1.怎么用 resource-id? 2.其它属性 二、通过截图就可以看到元素的属性,那怎么元素定位呢?...1.appium - app 页面元素定位 2.UiAutomator 的表达式 3.什么时候用 UiAutomator 呢? 4.和 Web 自动化的定位有啥区别?...二、通过截图就可以看到元素的属性,那怎么元素定位呢? 和 Web 自动化一样的,都是通过元素属性来定位,而且比 Web 自动化简单。 App 中只支持 5 种元素定位方式。...1.appium - app 页面元素定位 1、通过 id 定位元素:resrouce-id 2、通过 ClassName 定位:classname 3、通过 AccessibilityId 定位:content-desc...Appium 中通过 driver.find_element 来找元素的,找到的结果对象是一个 WebEmemt。 「但是括号里面,不同的定位类型你要输入不同的定位表达式。」
元素定位 本章节讲解是指在原生(APP)下进行元素定位,如果是Web(移动端里的浏览器)、混合(APP与WEBVIEW)里含有WEBVIEW页面进行元素定位,元素定位方法同Selenium一致,则可以参考...Selenium章节里的元素定位子章节。...IOS使用Appium Desktop里的Appium Inspector检查器。 1、by_id 通过id定位元素,IOS应用上的元素没有这个属性,所以仅支持Android。...name的元素定位方法。...一个元素有这些属性:type、value、name、label、enabled、visible,有些元素的属性只有以上的部分属性,如图所示:利用Appium Inspector检查器查看元素,可根据这些属性进行元素定位
目录 一、常见属性的用法 1.怎么用 resource-id? 2.其它属性 二、通过截图就可以看到元素的属性,那怎么元素定位呢?...1.appium - app 页面元素定位 2.UiAutomator 的表达式 3.什么时候用 UiAutomator 呢? 4.和 Web 自动化的定位有啥区别?...二、通过截图就可以看到元素的属性,那怎么元素定位呢? 和 Web 自动化一样的,都是通过元素属性来定位,而且比 Web 自动化简单。 App 中只支持 5 种元素定位方式。...1.appium - app 页面元素定位 1、通过 id 定位元素:resrouce-id 2、通过 ClassName 定位:classname 3、通过 AccessibilityId 定位...Api 的官方文档: Appium 中通过 driver.find_element 来找元素的,找到的结果对象是一个 WebEmemt。 「但是括号里面,不同的定位类型你要输入不同的定位表达式。」
UI工具连接APP 得到的界面如下,选中元素即可看到元素的layout信息,比如下方的定位框即可以通过ID来定位,也可以通过Xpath来定位 ?...UI工具定位APP 三、appium自带的Inspector元素定位工具 Appium Inspector 是 appium 自带的一个元素定位工具。...1.设置appium的Android Settings,点击左上角的安卓图标进入安卓设置,注意设置时不要开启appium,也就是不要点击appium右上角的“三角形”按键 ?...,这里选的是模拟器; 2.开启appium,点击右侧的launch(三角形图标按键)开启,然后点击appium上的inspector来进行定位,使用inspector上的refresh可以刷新成当前模拟器的页面...设置apk路径并开启appium ?
领取专属 10元无门槛券
手把手带您无忧上云