首页游戏资讯App主动化测试|原生app元素定位办法

App主动化测试|原生app元素定位办法

misa2 04-10 4次浏览 0条评论

元素定位办法介绍及利用

Appium办法定位原生app元素

通过appium inspector东西,能够获取元素的相关信息;在appium中供给了一系列的元素定位API,通过在那些API中输进指定的元素信息,就能完成元素定位,定位元素后就停止对元素停止主动操做。

appium中识别元素的体例有两种写法

体例一:driver.find_element_by_id(" ")

体例二:driver.find_element(By.ID," ") -----选举利用

根本元素定位如下:

前置前提

from appium import webdriver # 导进appium 驱动包

from appium.webdriver.webdriver import By # 导进appium 定位的办法包

# 1、定义一个DesiredCapabilities设置装备摆设的字典

des = {

'platformName':'Android',

'platformVersion':'6.0.1', # 填写android虚拟机/实机的系统版本号

'deviceName':'MuMu', # 填写安卓虚拟机/实机的设备名称

'appPackage':'com.sky.jisuanji', # 填写被测app包名

'appActivity':'.JisuanjizixieActivity', # 填写被测app的进口

'udid':'127.0.0.1:7555', # 填写通过号令行 adb devices 查看到的udid

'noReset':True, # 重置APP

'unicodeKeyboard':True, # 撑持中文输进

'resetKeyboard':True, # 撑持重置键盘

展开全文

'newCommandTimeout':30 # 30秒没发送新号令就断开毗连

# 2、把设置装备摆设的字典做为恳求参数发送给appium办事器

driver = webdriver.Remote(')

driver.find_element(By.ID," ")

代码示例:

1 # ID 定位(取resource-id、id、name)

2 driver.find_element(By.ID,'com.sky.jisuanqi:id/btn6').click()

driver.find_element(By.CLASS_NAME," ")

代码示例:

1 # class定位(取class)

2 driver.find_element(By.CLASS_NAME,'android.widget.Button').click()

注:class有时不是独一的值,如计算器的数字按键6和9,它们的class都是不异的值,故class定位一般不选举利用

App主动化测试|原生app元素定位办法

driver.find_element_by_accessibility_id(‘’) 注:driver.find_element(By. ) 新定位办法By已经没有accessibility_id的办法了

代码示例:

1 # AccessibilityId定位(取content-desc)

2 driver.find_element_by_accessibility_id('').click()

备注:此中name体例(取text)已不撑持

xpath == XPATH 是一门标识表记标帜语言 感化是在XML、XHTML 文档中查找元素

绝对途径

绝对途径 xpath 绝对途径 /开头 从根节点间接一层一层定位找到元素;元素的全途径,包罗了全数节点。那种办法写起来很长,效率不高;另一方面因为涉及到太多层,一旦中间任何一层有变更,那元素就定位不到了

App主动化测试|原生app元素定位办法

代码示例:通过绝对途径晓得计算机的数字按键 5 并点击

1 # xpath 绝对途径定位/开头 从根节点间接一层一层定位找到元素 碰着同层级不异的元素,用下标区分,下标从1起头

2 driver.find_element(By.XPATH,'/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout[2]/android.widget.LinearLayout/android.widget.TableLayout/android.widget.LinearLayout[2]/android.widget.Button[2]').click()

利用属性定位

appium中xpath属性定位格局:driver.find_element(By.XPATH,‘//类名[@text=“text值”]’)

网页中xpath属性定位格局:driver.find_element(By.XPATH,‘//标签[@id=“id值”]’)

text属性:

driver.find_element(By.XPATH,‘//类名[@text=“text值”]’)

resource-id属性:

driver.find_element(By.XPATH,‘//类名[@resource-id=“属性值”]’)

content-desc属性:

driver.find_element(By.XPATH,‘//类名[@content-desc=“属性值”]’)

class属性:

driver.find_element(By.XPATH,‘//类名’)

多属性:

and表达而且 or表达或者

driver.find_element(By.XPATH,‘//类名[@属性名=“属性值” and @属性名=“属性值”]’)

driver.find_element(By.XPATH,‘//类名[@属性名=“属性值” or @属性名=“属性值”]’)

# 利用属性 定位 //类名[@属性名="属性值"]

driver.find_element(By.XPATH,'//android.widget.Button[@resource-id="com.sky.jisuanji:id/btn8"]').click()

driver.find_element(By.XPATH,'//android.widget.Button[@text="8"]').click()

# 扩展:and/or

# //类名[@属性名1=“属性值1” and @属性名2=“属性值2”]

# //类名[@属性名1=“属性值1” or @属性名2=“属性值2”]

driver.find_element(By.XPATH,'//android.widget.Button[@text="8" and @resource-id="com.sky.jisuanji:id/btn8"]').click()

driver.find_element(By.XPATH,'//android.widget.Button[@text="8" or @bounds="sss"]').click()

# find_elements() 把称心前提的所有元素按婚配挨次放进列表 所以是先婚配到8 然后到9

els = driver.find_elements(By.XPATH,'//android.widget.Button[@text="9" or @text="8"]')

els[0].click()

els[1].click()

备注:

1、所有元素的属性都能够停止定位,但必需该属性的值是界面上独一的

2、xpath撑持代表肆意个字符,好比find_element(By.XPATH,'//[@text=text值]'),那种用法随便同时识别多个元素

利用部门属性值定位

当元素的属性值过长或者元素属性值内容中存在动态改变的情状下,能够利用该办法。

starts-with() contains() ends-with()–ends-with

起始位置婚配:starts-with()

driver.find_element(By.XPATH,‘//类名[starts-with(@属性名,“部门属性值”)]’)

包罗婚配:contains()

driver.find_element(By.XPATH,‘//类名[contains(@属性名,“部门属性值”)]’)

末尾位置婚配:ends-with()

driver.find_element(By.XPATH,‘//类名[ends-with(@属性名,“部门属性值”)]’)

# 部门属性值定位

# 1、元素属性过长 利用ends-with()办法

driver.find_element(By.XPATH,'//android.widget.Button[ends-with(@resource-id,"btn8")]').click()

# 2、动态元素 第一次翻开 text="id_9" 第二次翻开text="id_10" 第三次翻开text="id_11"

# starts-with(@text,"id_")

driver.find_element(By.XPATH,'//android.widget.Button[starts-with(@text,"id_")]').click()

噪音测试app
挪动app平安测试东西好物分享,挪动app平安测试陈述费用原则 华林证券v2415
相关内容
发表评论

游客 回复需填写必要信息