【appuim】20、定位一个元素
元素定位操作API
1、应用场景
- 计算机不像一样聪明,我们需要通过元素定位来获取元素,才能让计算机帮我们操作这个元素
2、步骤
- 打开uiautomatorviewer工具
- 打开模拟器或真机
- 通过uiautomatorviewer工具获取想要进行操作的元素的Node Detail信息
- 通过元素定位API进行定位
- 对元素进行相关操作
3、注意点
- 元素的定位基于当前屏幕范围内展示的可见元素
定位一个元素
1、应用场景
- 想要对按钮进行点击,想要对输入框进行输入,想要获取文本框的内容,定位元素是自动化操作必须要使用的方法。只有获取元素之后,才能对这个元素进行操作。
2、方法名
# 通过id定位一个元素
# 参数
# id_value:元素的resource-id属性值
# 返回值:
# 定位到的单个元素
driver.find_element_by_id(id_value)# 通过class_name定位一个元素
# 参数:
# class_value:元素的class属性值
# 返回值:
# 定位到的单个元素
driver.find_element_by_class_name(class_value)# 通过xpath定位一个元素
# 参数:
# xpath_value:定位元素的xpath表达式
# 返回值:
# 定位到的单个元素
driver.find_element_by_xpath(xpath_value)3、示例
- 通过id的形式,定位"放大镜"按钮,并点击
- 通过class的形式,定位"输入框",输入"hello"
- 通过xpath的形式,定位"返回"按钮,并点击
import time
from appium import webdriver
desired_caps = dict()
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '7.1'
desired_caps['deviceName'] = '192.168.56.101:5555'
# 手机参数
desired_caps['appPackage'] = 'com.android.settings'
desired_caps['appActivity'] = '.Settings'
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
# 通过id定位放大镜,并点击
element = driver.find_element_by_id('com.android.settings:id/search').click()
print('id_element:', element)
class_element = driver.find_element_by_class_name('android.widget.EditText').send_keys("hello")
print('class_element:', class_element)
xpath_element = driver.find_element_by_xpath('//*[@content-desc="收起"]').click()
print('xpath_element:', xpath_element)
time.sleep(5)
driver.quit()4、注意
- 如果很多元素的"特征"相同,使用find_element_by_xxx的方法会找到第一个
本文来自博客园,作者:郭祺迦,转载请注明原文链接:https://www.cnblogs.com/guojie-guojie/p/16304440.html

浙公网安备 33010602011771号