码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 移动端自动化-Appium元素定位


    文章目录

    • Appium元素定位
      • 第一类:属性定位
      • 第二类:路径定位
    • 常见问题
      • 理解appium server 和 appium inspector 以及 appium-python-client的关系

    appium是跨平台的,支持OSX,Windows以及Linux系统。它允许测试人员在不同的平台(iOS,Android)使用同一套API来写自动化测试脚本,这样大大增加了iOS和Android测试套件间代码的复用性 appium支持多语言,采用C/S设计模式,只要满足client能够发送http请求给server即可。

    Appium元素定位

    元素定位,就是寻找元素;而寻找元素的方式,有且只有两类;

    第一类:属性定位

    其包含: 标签名、文本、各类明确的属性
    因为属性无法穷举,所以我们约定,只对几种属性进行定位使用:
    1)content-desc ----> 对应的appium定位方式 —> accessibility id 定位方式的值 ----> content-desc 属性的值 (有可能出现定位不到唯一值)
    2)class name —> 对应的appium定位方式 ----> class name 定位方式的值 ----> class name 属性的值(有可能出现定位不到唯一值)
    3)tag name —> 对应的appium定位方式 ----> class name 定位方式的值 —> tag name 的值(appium2.x已经舍弃掉了)
    4)resource-id ----> 对应的appium定位方式 ----> id 定位方式的值 —> resource-id 的值(有可能出现定位不到唯一值)
    5)name ----> 对应的appium定位方式 ----> name 定位方式的值 —> name 的值(一般都是可以定位到唯一值)

    页面的源码是前端开发人员可以操控,他怎么写这个页面源代码,这个页面源代码里面的元素就有什么属性;

    下面的 AppiumBy 和 MobileBy 只需要用一个就行了

    from appium.webdriver.common.appiumby import AppiumBy
    from appium.webdriver.common.mobileby import MobileBy
    
    • 1
    • 2

    第二类:路径定位

    利用元素和元素之间的层级关系进行定位
    有两种方式:
    1) xpath
    2) css selector
    路径的名称一定是用到标签名、补充描述、层级的表示符;

    可能会遇到一些特殊情况:无论怎么定位,元素都会出现N个,都不能定位到你想要的元素;
    解决方案一:使用绝对路径一定能解决;
    解决方案二:元素内定位(寻找上一级的唯一属性,再定义下级的位置)

    常见问题

    理解appium server 和 appium inspector 以及 appium-python-client的关系

    appium server 是作为⼀个服务存在;
    appium inspector 是⼀个客户端,将命令发送给了 appium server,然后由appium server 将命令转化为移动设备的操作命令,从⽽实现移动设备实现⾃动化操作;
    Appium-python-client 也是⼀个客户端,我们运⾏Appium-Python-Client所⽣成的代码时,其本质,也是将代码发送给了appium server,appium server 将命令转化为移动设备的操作命令;从⽽实现移动设备实现⾃动化操作;

    appium inspector 在自动化测试过程中,主要是用作调试工具,本质是一个客户端。

  • 相关阅读:
    MindSpore运行模式与PyNative内存调优分析
    超实用的Go语言基础教程,让你快速上手刷题!!
    java毕业设计软件缺陷管理系统源码+lw文档+mybatis+系统+mysql数据库+调试
    《吉师作业》(1)之我是web手为啥让我学C
    工业数据与数据采集应用如何在ARM+FPGA异核架构的米尔MYC-JX8MMA7核心板应用
    牛客前端八股文(每日更新)
    ubuntu 安装jdk8
    写点什么吧,作为STM32系列的开篇……
    [课程][原创]yolov7训练自己数据集实例分割模型
    策略回测从2小时提速到1分钟,DolphinDB 助力华夏基金量化投研
  • 原文地址:https://blog.csdn.net/huajian225/article/details/132593168
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号