Appium——元素定位

首先介绍两种定位元素的工具,appium自带的 Inspector 和 android SDK自带的 uiautomatorviewer

1、UIAutomator Viewer比较简单,在模拟器打开app后,打开它,选择

点击这个按钮,就会同步模拟器或真机界面

点击页面中的元素,在右下角会显示该元素的一些信息

2、Inspector(android)

使用inspector就比较麻烦了,先设置appium

①首先是android setting

第一次设置的时候 package和launch activity是没有选择项的可以为空,填入Application path

②general settings中勾选下面这两项

③启动appium 就会发现会自动安装apk,然后点击appium中的搜索按钮,弹出inspector window,点击refresh,刷新出同步页面,在右下角也会显示出元素信息

如果出现错误,记得查看appium 日志排查

元素定位方式:

①by_id

②by_class_name

③by_name

如果要定位的控件是有文字的,可以直接尝试by_name,或者如果上图中的text后面是有值的话 也可以用by_name

④by_link_text

如果是herf 链接标签的 可以直接尝试用link定位,但是只适用于webview,跟web自动化的是一致的

⑤by_xpath

如下图,定位活动按钮

FrameLayout/ListView/LinearLayout/GridView/LinearLayout[1] 这是xpath的绝对路径

xpath可以这样写

第一种,利用元素属性

//android.widget.TextView[contains(@text, ‘活动‘)]

第二种,基本就是看元素路径了,利用index

//android.widget.ListView[0]/android.widget.LinearLayout[0]/android.widget.GridView/android.widget.LinearLayout[0]/android.widget.TextView

一层层向下分析,如果出现相同class则根据index来定位,跟web中的xpath相同

时间: 2024-11-05 02:19:00

Appium——元素定位的相关文章

4、通过uiautomatorviewer实现appium元素定位

熟悉selenium自动化的小伙伴应该知道WebDriver 提供了八种元素定位方法: idnameclass nametag namelink textpartial link textxpathcss selector appium元素定位和WebDriver略微有些差异,具体差异在哪里,下面会具体介绍,在此之前,我们先打开uiautomatorviewer.bat(在sdk/tools路径下) appium元素定位一:通过 Id 定位 如上图所示resource-id 就是我们要找的 Id

appium元素定位

通过id定位 安卓里面的id即为resource-id driver.findElementById("com.tencent.mm:id/do") 或者 WebElement element = driver.findElement(By.id("com.tencent.mm:id/do")); 通过name定位 一般text为name WebElement el = driver.findElement(By.name("昵称")); 通过c

appium元素定位之AndroidUiAutomator

UIAutomator 元素定位是 Android 系统原生支持的定位方式,虽然与 xpath 类似,但比它更好用,并且支持元素全部的属性定位,定位原理是通过 android 自带的android uiautomator 的类库去查找元素 方法名:find_element_by_android_uiautomator('uiSelector 表达式') 该方法的参数为 UiSelector 类定位元素的表达式:new UiSelector().函数名称("定位表达式") 实例化一个 U

Appium元素定位难点:tap坐标定位不准确

tap用法 1.tap是模拟手指点击页面上元素语法有两个参数,第一个是positions,是list类型最多五个点,duration是持续时间,单位毫秒 tap(self, positions, duration=None): Taps on an particular place with up to five fingers, holding for a certain time 模拟手指点击(最多五个手指),可设置按住时间长度(毫秒) :Args: - positions - list类型

Appium元素定位难点:混合式的native+webview

现在大部分app都是混合式的native+webview,对应native上的元素通过uiautomatorviewer很容易定位到,webview上的元素就无法识别了. 1.认识识webview >用uiautomatorviewer定位工具查看app页面,发现页面上有些区域无法定位到,如下图左边红色区域,只能定位到这个大框框,红色框里面的元素是无法识别的. >这时候可以查看元素属性,如右图它的class属性,上面写着WebView,那毫无疑问这种页面就是webview了. 2..接触con

学习 APPIUM 元素定位 (JAVA)-xpath

表达式 1.xpath根据text内容查找元素 //view[contains(@text,"value")] //view[@text="value"]等 2.xpath根据content-desc查找元素 //view[contains(@content-desc,"value")] 3.xpath根据index查找元素 //view[contains(@index,value)] 4.元素顺序 //view/view[n]/view等 例子

appium 元素定位find_element_by_android_uiautomator方法使用

若appium中给定的方法无法满足你的需求,刚好uiautomator中的方法可以满足你的需求时,你可使用find_element_by_android_uiautomator来调用uiautomator中的方法来实现. appium底层文件webdriver中给出的说明如下: def find_element_by_android_uiautomator(self, uia_string): """Finds element by uiautomator in Androi

appium 元素定位

查找控件的方式: 1.通过id查找 self.driver.find_element_by_id("com.guokr.mentor:id/text_view_topic_title") self.driver.find_elements_by_id("")[0] 2.通过name查找 self.driver.find_element_by_name("推荐") 3.通过class_name查找 self.driver.find_elements

初探appium之元素定位(1)

无论是selenium还是appium,元素定位都是我们开始实现自动化面临的第一个问题.selenium还好,我们可以在浏览器的调试页面进行元素定位还是蛮方便的.那么appium怎么做呢? 我看到很多资料,帖子都是说的appium自带的Inspector这个工具进行的元素定位.而笔者不知道是电脑还是什么的问题,这个工具是无法使用的.今天给大家说的是另一个工具. uiautomatorviewer 这个工具是在我们Android的SDK的tools的文件夹里面的.使用方法也很简单.这里我以安卓模拟