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

appium 实战问题 播放视频时无法定位到元素

背景

在做UI自动化时,有播放详情页的用例,但是发现视频在播放的时候无法定位到元素或者很慢,了解到appium在动态的页面实时获取布局元素导致定位变慢。所以只能将视频暂停在操作元素,点击到暂停按钮又是个问题,通过adb 点击坐标的话,不同设备就会成为问题。

解决思路

通过 adb shell uiautomator dump 到xml文件push到电脑端,再进行xml解析,识别到指定的元素,获取到当前元素坐标,再让adb进行点击操作。

import xml.etree.ElementTree as ET
# name是当前操作暂停键元素id名称
def dump_xml_return_tap(name):os.system("adb shell uiautomator dump /sdcard/layout.xml")path = os.path.join(BasePath, "xmls")path_file = os.path.join(path, "{}.xml".format(name))os.system("adb pull /sdcard/layout.xml {}".format(path_file))tree = ET.parse(path_file)root = tree.getroot()for i in root.findall(".//node"):if name in i.get("resource-id"):coord = i.get("bounds")res = coord.strip("[]")res = res.replace("][", ",").split(",")logger.info(res)x = int((int(res[0]) + int(res[2])) / 2)y = int((int(res[1]) + int(res[3])) / 2)logger.info("x:{},y:{}".format(x, y))return {"x": x, "y": y}```
http://www.lryc.cn/news/395697.html

相关文章:

  • 鸿蒙‘ohpm‘ 不是内部或外部命令,也不是可运行的程序-解决方案
  • 方法引用 异常 file
  • 比较(六)利用python绘制径向柱图
  • 为什么需要重写equals和如何重写equals
  • C#字符串操作:判断一个字符串是否存在于另一个字符串按特定字符分割后的子字符串中的几种方法
  • Hi3861 OpenHarmony嵌入式应用入门--MQTT
  • [22] Opencv_CUDA应用之 使用背景相减法进行对象跟踪
  • Maven在Windows中的配置方法
  • 一、redis-万字长文读懂redis
  • 搞清楚[继承],易如反掌
  • Perl 语言入门学习指南:探索高效脚本编程的奥秘
  • 【HTML】-解决页面内容无法选择、复制问题
  • C#中委托与事件
  • 通用后台管理(二)——项目搭建
  • 多模态大模型之达摩院通义MPLUG
  • 文章翻译记录
  • C++ 语法习题(2)
  • 使用Gstreamer时遇到WARNING: erroneous pipeline: no element “x264enc“(亲测有效)
  • SAP 新增移动类型简介
  • SQL性能优化策略
  • 代码随想录第四十八天 | 198.打家劫舍, 213.打家劫舍II,337.打家劫舍III
  • C#实用的工具类库
  • 首席数据官CDO证书报考指南:方式、流程、适考人群与考试难度
  • 数据库基础复习
  • 探索AI大模型(LLM)减少幻觉的三种策略
  • 【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第一篇 嵌入式Linux入门篇-第十三章 Linux连接档
  • 鸿蒙语言基础类库:【@ohos.uri (URI字符串解析)】
  • JavaScript---new Map()用法
  • 【数据基础】— 基于Go1.19的站点模板爬虫的实现
  • Angular进阶之九: JS code coverage是如何运作的