软件测试/测试开发丨App自动化—CSS 定位与原生定位

点此获取更多相关资料

本文为霍格沃兹测试开发学社学员学习笔记分享
原文链接:https://ceshiren.com/t/topic/27684

一、原生定位

  • 元素属性定位
  • 组合定位
# 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 定位

  • 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")",...}

2.1、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']")

2.2、示例

  • 打开【雪球】应用首页
  • 点击搜索框
  • 向搜索框输入: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()}")

2.3、iOS css selector 定位

三、总结

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值