码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Python+Appium】自动化测试(十一)location与size获取元素坐标


             目录

    前言

    一,获取元素坐标的方法

    1,size获取元素的宽、高

    2,location获取元素左上角坐标

    3,由此可以计算出元素其他的坐标

    二,使用场景

    结语


    前言

    appium做app自动化测试过程中,有时需要获取控件元素的坐标进行滑动操作。appium中提供了location方法获取控件元素左上角的坐标,再通过size方法获取控件元素的宽高,就可以得到控件元素更多的坐标。

    一,获取元素坐标的方法

    1,size获取元素的宽、高

    1. ele_size = driver.find_element_by_xx('xx').size
    2. # 元素的宽
    3. width = ele_size['width']
    4. # 元素的高
    5. height = ele_size['height']

    2,location获取元素左上角坐标

    1. ele_coordinate = driver.find_element_by_xx('xx').location
    2. # 元素左上角横坐标
    3. x = ele_coordinate['x']
    4. # 元素左上角纵坐标
    5. y = ele_coordinate['y']

    3,由此可以计算出元素其他的坐标

    1. (x+width, y) # 右上角坐标
    2. (x+width, y+height) # 右下角坐标
    3. (x, y+height) # 左下角坐标
    4. (x+width/2, y+height/2) # 元素中心点坐标

    二,使用场景

    需要对元素进行滑动时,我们可以考虑先获取元素的坐标,再通过坐标来滑动元素。

    如:QQ聊天界面删除某个聊天。从元素的右上角 (x+width, y) 向左滑动至上边中心点(x+width/2, y),然后点击删除。

    1. # 第一个聊天框元素
    2. ele = driver.find_element_by_xpath('//android.widget.AbsListView/android.widget.LinearLayout[@index=1]')
    3. # 聊天元素的宽
    4. width = ele.size['width']
    5. # 左上角坐标
    6. x = ele.location['x']
    7. y = ele.location['y']
    8. # 滑动起始坐标
    9. start_x = x + width
    10. start_y = y
    11. # 滑动结束坐标
    12. end_x = x + width/2
    13. end_y = y
    14. # 滑动并删除
    15. action = TouchAction(driver)
    16. action.press(start_x, start_y).move_to(end_x, end_y).release().perform()
    17. driver.find_element_by_xpath('//*[@content-desc="删除"]').click()

    结语

    这篇贴子到这里就结束了,最后,希望看这篇帖子的朋友能够有所收获。

    如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!

  • 相关阅读:
    SSM+基于web的酒店预订及个性化服务系统 毕业设计-附源码241822
    704.二分查找
    WPF程序中 Invoke的使用
    Spring(八)Spring 整合 MyBatis、Junit
    用无感知的方式为你的数据加上一层缓存
    哈希表 or HashMap模拟实现
    【JS】判断水仙花数
    C/C++网络编程基础知识超详细讲解上部分(系统性学习day11)
    初试占比70%,计算机招生近200人,安徽理工大学考情分析
    你可能不太了解的前端知识
  • 原文地址:https://blog.csdn.net/m0_70618214/article/details/128146673
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号