写点什么

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

作者:测试人
  • 2023-10-11
    北京
  • 本文字数:1118 字

    阅读完需:约 4 分钟

免费领取:测试资料+测试用例+简历模板+测试文档

本文为霍格沃兹测试开发学社学员学习笔记分享

原文链接: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 用法

# 通过 idelementById("someResourceID")`    -> `elementsByCss("#someResourceID")# 通过 classelementsByClassName("android.widget.TextView")`    -> `elementsByCss("android.widget.TextView")# 通过 accessibility idelementsByAccessibilityId("Some Content Description")`    -> `elementsByCss('*[description="Some Content Description"]')# 通过 xpathelementsByXpath("//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

三、总结

  • Appium Server 版本>=1.21.0

  • css selector 会转化为 Android/iOS 原生定位的定位策略

  • Android 转为 Android Uiautomator 定位方式

  • iOS 转为 class chain 定位方式

发布于: 刚刚阅读数: 3
用户头像

测试人

关注

专注于软件测试开发 2022-08-29 加入

霍格沃兹测试开发学社,测试人社区:https://ceshiren.com/t/topic/22284

评论

发布
暂无评论
软件测试/测试开发丨App自动化—CSS 定位与原生定位_Python_测试人_InfoQ写作社区