【appuim】21、定位一组元素

1、应用场景

  • 和定位元素相同,但如果想要批量的获取某个相同特征的元素,使用定位一组元素的方式更加方便。

2、方法名

# 通过id定位一组元素
# 参数:
#	id_value:元素的resource-id属性值
# 返回值:
#	列表,定位到的所有符合调价你的元素
driver.find_elements_by_id(id_value)
# 通过class_name定位一组元素
# 参数:
# 	class_value:元素的class属性值
# 返回值:
#	列表,定位到的所有符合调价你的元素
driver.find_elements_by_class_name(class_value)
# 通过xpath定位一组元素
# 参数:
# 	xpath_value:定位元素的xpath表达式
# 返回值:
#	列表,定位到的所有符合调价你的元素
driver.find_elements_by_xpath(xpath_value)

3、示例

  • 通过id的形式,获取所有resource-id为"com.android.settings:id/title"的元素,并打印其文字内容
  • 通过class_name的形式,获取所有class为"android.widget.TextView"的元素,并打印其文字内容
  • 通过xpath的形式,获取所有包含"设"的元素,并打印其文字内容
from appium import webdriver

desired_caps = dict()
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '7'
desired_caps['deviceName'] = '192.168.101.55:5555'

# 手机参数
desired_caps['appPackage'] = 'com.android.settings'
desired_caps['appActivity'] = '.Settings'

driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

elements = driver.find_elements_by_id('android:id/title')

class_elements = driver.find_elements_by_class_name('android.widget.TextView')

# 包含设
xpath_elements = driver.find_elements_by_xpath('//*[contains(@text, "设")]')



# 打印文字内容
# print(elements)
for _ in xpath_elements:
	print(_.text)

# 找到某个元素,点击
# class_elements[5].click()
posted @ 2022-05-31 09:52  郭祺迦  阅读(40)  评论(0)    收藏  举报