首页 > 其他分享 >15.高阶定位-CSS 定位与原生定位

15.高阶定位-CSS 定位与原生定位

时间:2023-12-20 10:35:11浏览次数:37  
标签:定位 15 element android com id CSS

目录

  • 原生定位
  • css selector 定位

原生定位

# ID 定位
driver.find_element_by_android_uiautomator('\
    new UiSelector().resourceId("<element-ID>")')

# 组合定位
driver.find_element_by_android_uiautomator('\
    new UiSelector().resourceId("com.xueqiu.android:id/tab_name").\
    text("我的")')

CSS Selector 定位

css selector 定位介绍

  • 官网说明
  • Android: Appium Server 版本 >= 1.19.0
  • iOS:Appium Server>= 1.21.0
代码:
driver.find_element(AppiumBy.CSS_SELECTOR,\
    "#com\.xueqiu\.android\:id\/tv_search")

解析前:
{"using":"css selector",\
    "value":"#com\\.xueqiu\\.android\\:id\\/tv_search"}

解析后:
{"strategy":"-android uiautomator",\
    "selector":"new UiSelector().resourceId
    (\"com.xueqiu.android:id/tv_search\")",...}

css selector 用法

# 通过 id
elementById("someResourceID")`
    -> `elementsByCss("#someResourceID")
# 通过 class
elementsByClassName("android.widget.TextView")`
    -> `elementsByCss("android.widget.TextView")
# 通过 accessibility id
elementsByAccessibilityId("Some Content Description")`
    -> `elementsByCss('*[description="Some Content Description"]')
# 通过 xpath
elementsByXpath("//android.widget.TextView[@description='Accessibility']")`
    -> `elementsByCss("android.widget.TextView[description='Accessibility']")

示例

  • 打开【雪球】应用首页
  • 点击搜索框
  • 向搜索框输入:alibaba
  • 判断【阿里巴巴】可见
def test_search1(self):
    # 点击搜索框
    element = self.driver.find_element(\
        AppiumBy.CSS_SELECTOR,"#com\.xueqiu\.android\:id\/tv_search")
    element.click()
    # 向搜索框输入:alibaba
    self.driver.find_element(AppiumBy.CSS_SELECTOR,
        "#com\.xueqiu\.android\:id\/search_input_text"). \
        send_keys("alibaba")
    alibaba_element = self.driver.find_element(\
        AppiumBy.CSS_SELECTOR, "*[text='阿里巴巴']")
    displayed = alibaba_element.get_attribute("displayed")
    print(displayed)
    # 判断【阿里巴巴】可见
    assert displayed == "true"
    print(f"结束时间:{self.get_time()}")

iOS css selector 定位

  • Appium Server 版本>=1.21.0
  • 官网:https://github.com/appium/appium/releases/tag/v1.21.0

总结

  • Appium Server 版本>=1.21.0
  • css selector 会转化为 Android/iOS 原生定位的定位策略
  • Android 转为 Android Uiautomator 定位方式
  • iOS 转为 class chain 定位方式

标签:定位,15,element,android,com,id,CSS
From: https://www.cnblogs.com/csfsz/p/17915915.html

相关文章

  • CF1593E-Gardener-and-Tree-题解
    title:CF1593EGardenerandTree题解date:2022-05-2721:30:48categories:-题解原题面题意:给出一个\(n\)个点的树,删除\(k\)次叶子节点,求剩下的节点数。思路:设\(cnt_i\)为\(k\)最小为多少时点\(i\)会被删除。当\(i\)将要被删除时,它一定是现在的叶子,联......
  • 12.15
    在Java中,缓冲类通常用于提高I/O操作的性能,例如 BufferedReader 用于读取文本文件,BufferedWriter 用于写入文本文件。下面分别给出这两个类的使用示例:使用 BufferedReader 读取文本文件的示例:importjava.io.BufferedReader;importjava.io.FileReader;importjava......
  • 【SpringBootWeb入门-15】Mybatis-基础操作-增改查操作
    1、章节回顾上一篇文章我们讲解了Mybatis的删除操作,本篇继续学习Mybatis的新增操作:根据员工表字段,新增员工表的数据,新增的字段有:用户名、员工姓名、性别、图像、职位、入职日期、归属部门。2、增删改查操作-新增操作员工表emp新增数据,对应的SQL语句:insertintoemp(username......
  • 13.元素定位工具
    uiautomatorviewer工具安装工具的安装:AndroidSDK自带的界面分析工具打开 tools/bin 目录下的 uiautomatorviewer 程序uiautomatorviewer工具功能介绍第一个是通过分析给定的文件定位第二个是将当前界面截图并分析xml结构第三个与第二个功能类似,但它会对页面内容......
  • 代码随想录算法训练营第七天|454.四数相加II,383. 赎金信,15. 三数之和,18. 四数之和
    一、454.四数相加II题目链接:LeetCode454.四数相加II学习前:思路:首先定义两个HashMap对象record12和record34,对应的key存放两个数组元素的和,value存放计算的和出现的次数接着遍历record12,若record存在与之和为0的元素,则计算两个value相乘的结果,并进行累积,作为输出的结果......
  • 化工厂人员定位系统解决方案,融合UWB定位技术,实现室内外精准定位
    行业背景1、人车位置不精准:无法实时查看内外部人员和车辆的精准位置,遇到突发安全事故,无法及时确认人员位置并制定有效的救援方案。2、作业安全保障弱:难以管控人员和车辆非法进入重大危险源区域、高危装置区、特殊作业区、罐区、装卸站台、检修区域等重点监管区域。3、智能管控待提......
  • (原)NCP170AMX280TBG 150mA(LDO)稳压器,TPS25942ARVCR功能丰富的电源管理器件
    1、NCP170AMX280TBGLDO稳压器,150mA,超低IqNCP170系列CMOS低漏稳压器特别适用于需要超低静止电流的便携式电池供电应用。典型值为500nA的超低耗量确保了较长的电池寿命和动态瞬变升压功能,改善了无线通信应用的器件瞬变反应。该器件采用小型1×1mmxDFN4、TSOP5和SOT-......
  • 10.自动化测试定位策略
    App定位方式 定位策略描述AccessibilityID识别一个唯一的UI元素,对于XCUITest引擎,它对应的的属性名是 accessibility-id,对于Android系统的页面元素,对应的属性名是 content-descClassname对于iOS系统,它的class属性对应的属性值会以XCUIElementType开......
  • 微信小程序使用iconfont通过transfonter转化成只有css样式的方式
    1.通过iconfont 网站选择对应图表加入购物车,然后添加到自己对应项目中,现在至本地。2.解压下载到本地的文件 3.进入 transfonter 后,点击Addfonts按钮,将上图中红色框中的文件上传上去,勾选启用 Base64encode ,点击Convert按钮,完成后点击下载Download 4.解压转......
  • MegEngine 优化 dataloader 使用体验!data monitor 帮助更好定位性能瓶颈
    业务模型训练中Data部分可能是瓶颈所在在训练业务模型过程中,如果我们发现模型的训练速度不符合预期,往往会下意识地认为网络本身出了问题。但实际上,大多数时候问题发生在模型的数据供给逻辑中。区分一个训练过程的瓶颈到底是在准备数据,还是在网络的计算阶段其实是很简单的。比......