当前位置: 首页 > news >正文

appium的元素定位(你可以知道最新的元素定位的写法)

这是比较老的写法:

driver.find_element_by_id("com.alipay.mobile.accountauthbiz:id/auth_login_btn")

新版是这样写:

driver.find_element(by=AppiumBy.ID, value='tv.danmaku.bili:id/action_search') driver.find_element(by=AppiumBy.XPATH, value=“//android.widget.TextView[@resource- id=‘com.taobao.taobao:id/provision_positive_button’]”).click()
导包:
from appium.webdriver.common.appiumby import AppiumBy

编码的前提是你已经有appium的环境,才可以编码运行

优化:

新版Appium元素定位方法

使用AppiumBy进行元素定位是现代Appium脚本的推荐写法,替代了旧版的find_element_by_*方法。以下是优化后的代码示例和说明:

元素定位语法

from appium.webdriver.common.appiumby import AppiumBy driver.find_element(by=AppiumBy.ID, value='tv.danmaku.bili:id/action_search') driver.find_element(by=AppiumBy.XPATH, value='//android.widget.TextView[@resource-id="com.taobao.taobao:id/provision_positive_button"]').click()

关键改进点

统一导入方式from appium.webdriver.common.appiumby import AppiumBy确保使用标准化的定位策略,与Selenium 4+的语法保持一致。

显式定位策略通过by=AppiumBy.IDby=AppiumBy.XPATH明确指定定位方式,代码可读性更强,且兼容未来版本更新。

XPath引号规范XPath属性值使用双引号包裹,外层用单引号区分,避免转义问题:value='//*[@text="登录"]'

最佳实践建议

异常处理添加NoSuchElementException捕获逻辑,增强脚本健壮性:

from selenium.common.exceptions import NoSuchElementException try: el = driver.find_element(by=AppiumBy.ID, value='element_id') except NoSuchElementException: print("Element not found")

等待机制结合显式等待提高定位成功率:

from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC element = WebDriverWait(driver, 10).until( EC.presence_of_element_located((AppiumBy.ID, 'com.example:id/button')) )

环境验证确保测试前已完成以下配置:

  • Appium Server 1.18.0+
  • Python客户端库appium-python-client最新版
  • 正确的设备UDID和appPackage/appActivity配置
http://www.jsqmd.com/news/984179/

相关文章:

  • 初学者必看:deit_tiny_distilled_patch16_224.fb_in1k模型结构与工作原理图解
  • 网盘直链下载助手:一站式解决九大网盘下载限制的终极方案
  • workaround是什么意思
  • Agent理论
  • PyCharm安装包报错?试试绕过它的图形界面:手把手教你用Terminal搞定一切依赖
  • Python 爬虫实战:排行榜榜单数据自动抓取更新
  • 深入解析NXP Kinetis K11:Cortex-M4低功耗MCU的架构、DSP与电源管理实战
  • 3步解锁Beyond Compare 5:开源密钥生成工具完全指南
  • 跨省寄大件怎么最省钱?对比5家物流后我选了它 - 快递物流资讯
  • 基于MC68HC908QT2的BLDC风扇控制方案:经典8位机实现变速与热保护
  • 2026成都市新津区家里卫生间漏水、阳台漏水、楼顶漏水、阳台漏水、地下室渗水、阳光房漏水各种房屋漏水情况不用愁!本地防水补漏公司为您排忧解难!精准推荐附近专业防水团队 - 防水百科
  • 从数据手册到实战:Kinetis KL15 ADC/DAC/SPI电气特性深度解析与设计指南
  • i.MX 7Solo异构多核SoC:Linux与RTOS融合的嵌入式设计实战
  • 2026成都市温江区家里卫生间漏水、阳台漏水、楼顶漏水、阳台漏水、地下室渗水、阳光房漏水各种房屋漏水情况不用愁!本地防水补漏公司为您排忧解难!精准推荐附近专业防水团队 - 防水百科
  • 2026年制造升级:防静电地坪行业实力供应厂家考察要点 - 企业推荐官【官方】
  • 保姆级教程:在Windows/Linux上快速下载并验证nuScenes数据集(附完整文件结构解析)
  • 实操教程:修复 OpenClaw 没有权限执行电脑操作问题(含安装包)
  • 【Springboot毕设全套源码+文档】基于SpringBoot的校园网故障管理系统(丰富项目+远程调试+讲解+定制)
  • VBA-RunPE实战案例:构建免杀PowerShell后门的完整步骤
  • 2026济南市平阴县家里卫生间漏水、阳台漏水、楼顶漏水、阳台漏水、地下室渗水、阳光房漏水各种房屋漏水情况不用愁!本地防水补漏公司为您排忧解难!精准推荐附近专业防水团队 - 防水百科
  • 浙江金瑞恒入选3%AFFF/AR抗溶性水成膜泡沫灭火剂品牌榜单,储运安全有保障 - 品牌速递
  • 2026环氧地坪漆源头厂家实力解读:工业与商业场景的系统化选型方案 - 企业推荐官【官方】
  • ARM Cortex-M4与Kinetis K10低功耗嵌入式开发实战指南
  • ARM Cortex-M4嵌入式开发实战:K10系列MCU架构解析与低功耗设计
  • CentOS版Linux安装python3.8或python3.10.0详细过程
  • 2026成都市金堂县家里卫生间漏水、阳台漏水、楼顶漏水、阳台漏水、地下室渗水、阳光房漏水各种房屋漏水情况不用愁!本地防水补漏公司为您排忧解难!精准推荐附近专业防水团队 - 防水百科
  • 避坑指南:Cisco Packet Tracer实验中那些让人抓狂的‘小问题’(附解决方案)
  • M4 芯片与 24GB 内存:本地大模型推理的“黄金平衡点”深度解析
  • WarcraftHelper终极指南:如何让魔兽争霸3焕发新生
  • JBZoo/Utils:PHP开发者必备的终极工具库完全指南