1.appium inspector(定位元素的工具)使用方法
详细介绍:
详细解释:
图标 | 名称 | 说明 |
---|---|---|
1 |
Show Element Handles |
是否显示元素句柄 |
2 |
Select Elements |
选择元素定位 |
3 |
Tap/Swipe By Coordinates |
按坐标点击/滑动 |
4 |
Download Screenshot |
下载屏幕截图 |
5 |
Press Back Button |
按下后退按钮 |
6 |
Press Home Button |
按主页按钮 |
7 |
Press App Switch Button |
按应用程序切换按钮 |
8 |
Native App Mode |
本机应用程序模式 |
9 |
Web/Hybrid App Mode |
Web/ 混合应用程序模式 |
10 |
Refresh Source & Screenshot |
刷新源和屏幕截图 |
11 |
Search for element |
搜索元素 |
12 |
Start Recording |
开始录制 |
13 |
Quit Session & Close Inspector |
退出会话并关闭检查器 |
2.appium定位方法
(1)目标元素有 resource-id 且该 id 唯一 , 或排第一个
driver.find_element_by_id
(2)目标元素有 content-desc 属性
driver.find_element_by_accessibility_id
(3)以上条件均不具备 -XPATH
driver.find_element_by_xpath
备注: appium 寻找元素的形式与 selenium 基本相同, 都有单数和复数形式,
find_element_by_XXX 符合条件的 第一个元素 ,找不到抛出异常(所以如果自己所找的元素,匹配到了多个值,若该值显示在第一个的话,就可以用该表达式)
find_elements_by_XXX 符合条件的所有元素的列表,找不到返回空列表
同时也有全局查找和局部查找
通过 WebDriver 查找范围是整个界面树形结构
通过 WebElement 查找范围是该节点的子节点
Xpath 在 appium 中的原理
在 Appium 中,我们没法使用 css ,因为 css 是 web 专用的
与 web 不同,底层测试驱动并不识别 XPATH
Appium 负责解析 xpath 给底层测试驱动来识别
每个节点名对应元素的 class 属性
对于一些比较复杂的元素的定位,我们可以用它定位
driver.find_element_by_xpath('//ele1/ele2[@attr="a1"]')
xpath 表达式
(1)通过 ID 选择
//*[@resource-id="com.hpbr.bosszhipin:id/view_job_card"]
(2)通过 CLASS 选择
//android.view.ViewGroup
(3)通过其他属性选择
//*[@ 属性 =" 属性值 "]
(4)选择子元素
// [@ 属性 =" 属性值 "]/
(5)选择父元素
//*[@ 属性 =" 属性值 "]/..