App自动化定位元素

#定位的元素要在屏幕可见范围

driver.find_element_by_xx(‘xx_value’)
找到元素或者元素组的第一个,没找到会报错
driver.find_elements_by_xx(‘xx_value’)
找到一组元素列表,没找到会返回一个空列表

根据ID
与selenium相似
是要查看安卓应用元素的resource-id属性
driver.find_element_by_id(‘id_value’)
driver.find_elements_by_id(‘id_value’)

根据CLASS NAME
类似web里面的tagname
通常,一个页面中有多个class属性
driver.find_element_by_class_name(‘class_value’)
driver.find_elements_by_class_name(‘class_value’)

根据Xpath
其可靠性和性能不如 Selenium Web自动化
selenium自动化中, xpath表达式中每个节点名是html的tagname。
在appium中, xpath表达式中 每个节点名 是元素的class属性值。
driver.find_element_by_xpath(’//[@content-desc=‘content-desc.value’]’)
driver.find_elements_by_xpath(’//
[contains(@text,‘关键字’)]’)
driver.find_elements_by_xpath(’//*[@content-desc=‘content-desc.value’]’)

选取多个属性定位元素
code = ‘new UiSelector().text(“热门”).className(“android.widget.TextView”)’
ele = driver.find_element_by_android_uiautomator(code)
ele.click()

学习链接:https://www.bilibili.com/video/BV1tE411n7rV

### Python App自动化中的元素定位方法 在Python进行App自动化测试时,元素定位是一项核心技能。对于那些难以通过简单ID、名称或类名唯一识别的元素来说,层级定位是一种有效的方法[^1]。 #### 使用uiautomator进行元素定位 以百度APP为例,“搜索”按钮可以通过`uiautomator`的方式来进行精准定位并执行点击动作。这不仅提高了定位准确性还增强了脚本稳定性[^2]。 ```python from appium import webdriver from appium.webdriver.common.appiumby import AppiumBy desired_caps = { 'platformName': 'Android', 'deviceName': 'emulator-5554', # 设备名称 'appPackage': 'com.baidu.searchbox', # 应用包名 'appActivity': '.MainActivity' # 启动活动 } driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) # 定位并点击“搜索” search_button = driver.find_element(AppiumBy.ANDROID_UIAUTOMATOR, 'new UiSelector().text("搜索")') search_button.click() ``` #### 导入必要的库文件 为了支持不同类型的查找方式,在编写代码前需先引入特定模块。例如,要利用多种策略来寻找界面组件,则应加载`AppiumBy`这个类[^3]: ```python from appium.webdriver.common.appiumby import AppiumBy ``` #### XPath vs UIAutomatorViewer 值得注意的是,虽然两者都能用于描述页面结构路径,但是`XPath`可能因为其绝对形式而在某些情况下变得不够灵活;相反地,借助于`UI Automator Viewer`工具可以更直观地获取相对稳定的属性组合来进行精确定位[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值