Appium元素定位—id定位(交易宝)

本文介绍了如何在Appium中通过元素的id进行定位。通过打开Appium,选择jiaoyibao_Android_5.1.1应用并启动会话,演示了获取‘跳过’按钮和‘个人头像’的id值。在Python代码示例中,展示了使用find_element_by_id()方法进行定位,并提出通过异常捕捉NoSuchElementException的方式来处理找不到元素的情况。

id定位
日常生活中身边可能存在相同名字的人,但是每个人的身份证号码是唯一的,在app界面元素中也可以使用id值来区分不同的元素,然后进行定位操作。Appium中可以使用 find_element_by_id() 方法来进行id定位。

1.打开appium,找到jiaoyibao_Android_5.1.1,点击Start Session
在这里插入图片描述
2.获取跳过的id
在这里插入图片描述
3.获取个人头像的id
![在这里插入图片描述](https://img-blog.youkuaiyun.com/20181002155046936?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzI2NDE3Nw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/7
3.ptyhon代码如下
jiaoyibao_cancel_skip.py

from appium import webdriver    #导入appium包

desired_caps={}     #定义一个字典,用来存储capablity的相关信息
desired_caps['platformName']='Android'      #设备平台的名称
desired_caps['deviceName']='127.0.0.1:62025'   
### Appium 元素定位方法 #### ID 定位 ID 是最常用也是效率最高的定位方式之一。通过唯一标识符来查找元素,这种方式不仅快速而且稳定。 ```java driver.findElement(By.id("com.example:id/button")); ``` 此代码片段展示了如何利用 `By.id` 方法找到具有特定 ID 的按钮组件[^1]。 #### Class Name 定位 当应用中的多个视图共享相同的类名时可以采用此类方式进行筛选。需要注意的是,在复杂界面下可能会返回多个匹配项,因此可能需要进一步限定条件以确保准确性。 ```java List<WebElement> elements = driver.findElements(By.className("android.widget.EditText")); elements.get(0).sendKeys("input text"); ``` 这段 Java 代码说明了怎样选取第一个编辑框并输入文字[^2]。 #### XPath 定位 XPath 提供了一种灵活的选择机制,允许基于属性值或其他特征精确定位单个或一组节点。对于那些难以用简单选择器表达的情况特别有用。 ```xml // 使用绝对路径 WebElement element = driver.findElement(By.xpath("/hierarchy/android.widget.FrameLayout[1]/...")); // 或者相对路径配合属性过滤 WebElement element = driver.findElement(By.xpath("//android.widget.TextView[@text='Login']")); ``` 这里给出了两种不同类型的 XPath 表达式的例子:一种是指定完整层次结构;另一种则是仅指定目标标签及其特性。 #### UI Automator 定位 UIAutomator Viewer 工具可以帮助开发者更好地理解应用程序的布局,并构建更精确的选择器字符串用于测试框架中。它支持按文本、资源 id 和其他可见属性来进行查询。 ```java UiSelector().resourceId("com.package.name:id/resource_id").click(); ``` 上述命令演示了调用 UiSelector 来点击某个带有给定 resourceId 的控件的操作[^4]。 #### Accessibility Id (Content Description) 定位 这种方法适用于 Android 平台上的无障碍服务功能。如果界面上某些不可见但可互的对象没有合适的视觉表示,则可以通过设置 contentDescription 属性实现间接访问。 ```java driver.findElement(MobileBy.AccessibilityId("Settings")).click(); ``` 该语句实现了依据 accessibility id 找到名为 "Settings" 的项目并触发其点击事件的功能。 --- 为了提高定位成功率和稳定性: - 尽量优先考虑使用 ID 或者 Content Description 这样的独特标志作为首选方案; - 对于动态变化的内容(比如列表项),尝试结合 index 参数或者自定义谓词逻辑缩小范围; - 面向 H5 页面内的 Web 组件时切换上下文至 WebView 模式再继续下一步骤[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值