電商網(wǎng)站設(shè)計(jì)方案大全建立網(wǎng)站需要多少錢
點(diǎn)此獲取更多相關(guān)資料
本文為霍格沃茲測試開發(fā)學(xué)社學(xué)員學(xué)習(xí)筆記分享
原文鏈接: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、示例
- 打開【雪球】應(yīng)用首頁
- 點(diǎn)擊搜索框
- 向搜索框輸入:alibaba
- 判斷【阿里巴巴】可見
def test_search1(self):# 點(diǎn)擊搜索框element = self.driver.find_element(\AppiumBy.CSS_SELECTOR,"#com.xueqiu.android:id/tv_search")element.click()# 向搜索框輸入:alibabaself.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"結(jié)束時(shí)間:{self.get_time()}")
2.3、iOS css selector 定位
- Appium Server 版本>=1.21.0
- 官網(wǎng):Release v1.21.0 · appium/appium · GitHub
三、總結(jié)
- Appium Server 版本>=1.21.0
- css selector 會轉(zhuǎn)化為 Android/iOS 原生定位的定位策略
- Android 轉(zhuǎn)為 Android Uiautomator 定位方式
- iOS 轉(zhuǎn)為 class chain 定位方式