appium 元素定位find_element_by_android_uiautomator方法使用
阿新 • • 發佈:2017-12-22
orm broker 腳本 form creat tomat post author name
若appium中給定的方法無法滿足你的需求,剛好uiautomator中的方法可以滿足你的需求時,你可使用find_element_by_android_uiautomator來調用uiautomator中的方法來實現。
appium底層文件webdriver中給出的說明如下:
def find_element_by_android_uiautomator(self, uia_string): """Finds element by uiautomator in Android. :Args: - uia_string - The element name inthe Android UIAutomator library :Usage: driver.find_element_by_android_uiautomator(‘.elements()[1].cells()[2]‘) """ return self.find_element(by=By.ANDROID_UIAUTOMATOR, value=uia_string)
看了一會,楞是沒有明白給出的示例是什麽意思,實際腳本中怎麽運用,我知道是自己太笨了,所以果斷還是找能看懂的示例進行學習吧,因此哈哈還真找到了,將此運用方式寫成簡單的示例來記錄,說明:這裏已text為例,其余的uiautomator中的方法使用形式與此一致,因此會一個足以按照此方式來實現其他需求。
示例如下:
# coding=UTF-8 ‘‘‘ Created on 2017.12.21 @author: Lucky ‘‘‘from appium import webdriver class Customer: def __init__(self): logging.info("Test_appium.....setUp") desired_cups = {} desired_cups[‘platformName‘] = ‘Android‘ desired_cups[‘platformVersion‘] = ‘7.0‘ desired_cups[‘deviceName‘] = ‘aa‘ desired_cups[‘appPackage‘]= ‘com.ibroker.iBerHK‘ desired_cups[‘appActivity‘] = ‘.SplashActivity‘ self.device = webdriver.Remote(‘http://127.0.0.1:4723/wd/hub‘,desired_cups) self.device.implicitly_wait(20) #全局默認等待最大時間 #第一種 直接點擊字符串
def Enter_Customer_List(self): ‘‘‘select:通訊錄導入 and 手動添加‘‘‘ self.device.find_element_by_android_uiautomator(‘text(\"列表\")‘).click() #點擊 字符串“列表”
#第二種 通過參數的給定來操作
def Enter_Customer_List2(self,name):
‘‘‘select:通訊錄導入 and 手動添加‘‘‘
self.device.find_element_by_android_uiautomator(‘text(\"‘+name+‘\")‘).click()
if __name__ == "__main__":
c = Customer()
c.Enter_Customer_List()
c.Enter_Customer_List(‘列表‘)
appium 元素定位find_element_by_android_uiautomator方法使用