当前位置: 首页 > 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.gsyq.cn/news/1495921.html

相关文章:

  • PyCharm安装包报错?试试绕过它的图形界面:手把手教你用Terminal搞定一切依赖
  • 保姆级教程:在Windows/Linux上快速下载并验证nuScenes数据集(附完整文件结构解析)
  • 从数据手册到实战:Kinetis KL15 ADC/DAC/SPI电气特性深度解析与设计指南
  • 2026成都市温江区家里卫生间漏水、阳台漏水、楼顶漏水、阳台漏水、地下室渗水、阳光房漏水各种房屋漏水情况不用愁!本地防水补漏公司为您排忧解难!精准推荐附近专业防水团队 - 防水百科
  • 【Springboot毕设全套源码+文档】基于SpringBoot的校园网故障管理系统(丰富项目+远程调试+讲解+定制)
  • VBA-RunPE实战案例:构建免杀PowerShell后门的完整步骤
  • 2026济南市平阴县家里卫生间漏水、阳台漏水、楼顶漏水、阳台漏水、地下室渗水、阳光房漏水各种房屋漏水情况不用愁!本地防水补漏公司为您排忧解难!精准推荐附近专业防水团队 - 防水百科
  • CentOS版Linux安装python3.8或python3.10.0详细过程
  • M4 芯片与 24GB 内存:本地大模型推理的“黄金平衡点”深度解析
  • WarcraftHelper终极指南:如何让魔兽争霸3焕发新生
  • JBZoo/Utils:PHP开发者必备的终极工具库完全指南
  • 终极指南:5步掌握League Director打造英雄联盟史诗级游戏视频
  • AI大模型开发第三阶段Day05【Python数据分析开源库和环境搭建、Jupyter Notebook、Numpy】
  • 2026年6月环氧地坪漆厂家推荐榜单:环氧彩砂自流平,防静电环氧地坪,车间车库地面一站式优选 - 企业推荐官【官方】
  • Beyond Compare密钥生成器:终极免费激活方案与技术解析
  • 逆向视角解决:wsgsig dd03/dd05算法生成
  • 深度解析:基于强化学习的 Agent 与传统 Prompt Agent 到底有何不同?
  • JBZoo/Utils图像处理教程:PHP中快速处理图片的完整指南
  • PyFluent终极指南:用Python脚本实现CFD仿真自动化
  • 做自媒体三年,我终于学会了“如何不被读者划走”
  • 【亲测免费】 Hola-Proxy 使用与安装指南
  • STC89C52驱动的4×4×4 LED立方体完整开发包(含Proteus仿真+Keil源码+PCB图)
  • i.MX 6SoloX引脚分配与硬件设计实战指南
  • 2026成都市新都区家里卫生间漏水、阳台漏水、楼顶漏水、阳台漏水、地下室渗水、阳光房漏水各种房屋漏水情况不用愁!本地防水补漏公司为您排忧解难!精准推荐附近专业防水团队 - 防水百科
  • 暗黑2存档编辑器:免费网页工具让D2/D2R存档编辑变得简单快速
  • 如何快速掌握JimuReport扩展开发:面向开发者的完整指南
  • DeepONet非线性算子学习终极指南:从理论到实战的完整教程
  • GBase 8s数据库运行模式切换介绍
  • 3分钟实现通达信缠论自动分析:告别手动画线的智能解决方案
  • AtlasOS:Windows系统性能优化的终极开源方案