Python Appium 元素定位方法簡單介紹

來源:互聯網
上載者:User

標籤:click   select   alert   pytho   roi   jar   lin   移動   通用   

Python  Appium  元素定位

 

常用的八種定位方法(與selenium通用)

# id定位driver.find_element_by_id()# name定位driver.find_element_by_name()# xpath定位driver.find_element_by_xpath()# class_name定位driver.find_element_by_class_name()# css 定位driver.find_element_by_css_selector()# link定位driver.find_element_by_link_text()# tag定位driver.find_element_by_tag_name()# partial_link定位driver.find_element_by_partial_link_text()

 

        # 移動端 新增方法        # accessibility_id 定位        driver.find_element_by_accessibility_id()        # Android        driver.find_element_by_android_uiautomator()        # ios        driver.find_element_by_ios_uiautomation()

 

id定位

 

# resrouce-id屬性是id:driver.find_element_by_id(‘username‘) 

 

 

 

name定位

 

# text屬性是namedriver.find_element_by_name(u‘請輸入使用者名稱‘)

 

 

Xpath定位

 如,使用 uiautomatorviewer.bat 擷取頁面元素

注意:SDK內建的uiautomatorviewer.bat無法擷取xpath,需要替換一個jar包方可擷取xpath。此jar包放到了QQ群:193056556中,有需要的可以進群自取。

 

self.driver.find_element_by_xpath("//android.widget.TextView[@text=‘ ‘]").click()

 

 

 

class_name定位

self.driver.find_element_by_class_name(‘android.view.View‘).click()

 (註:一般一個頁面上的class屬性不唯一,元素不唯一的話定位會報錯了)

 

 

accessibility_id 定位

 content-desc即是對應的 accessibility_id

 

driver.find_element_by_accessibility_id(u"我的").click()

 

 

 

android_uiautomator 定位

 

driver.find_element_by_android_uiautomator(‘new UiSelector().resourceId("username")‘).clear()

 

以下是代碼執行個體

 

#測試異常登入-使用者不存在    def test_aNoUserLogin(self):        driver  = self.driver        time.sleep(5)        driver.find_element_by_accessibility_id(u"我的").click()        time.sleep(5)        driver.find_element_by_accessibility_id(u"登入/註冊").click()        time.sleep(2)        driver.find_element_by_android_uiautomator(‘new UiSelector().resourceId("username")‘).clear()        time.sleep(2)        driver.find_element_by_android_uiautomator(‘new UiSelector().resourceId("username")‘).send_keys(‘xzbuyer1‘)        time.sleep(2)        driver.find_element_by_android_uiautomator(‘new UiSelector().resourceId("password")‘).clear()        time.sleep(2)        driver.find_element_by_android_uiautomator(‘new UiSelector().resourceId("password")‘).send_keys(‘111111‘)        time.sleep(2)        driver.find_element_by_accessibility_id(u"登入").click()        time.sleep(18)        get_alertMessage = driver.find_element_by_id(‘android:id/message‘).text        time.sleep(2)        if get_alertMessage == u‘使用者不存在‘:            print (u"使用者不存在,用例執行成功!")        else:            print (u"用例執行失敗!")    def test_bNoPassLogin(self):        driver  = self.driver        time.sleep(5)        driver.find_element_by_accessibility_id(u"我的").click()        time.sleep(5)        driver.find_element_by_accessibility_id(u"登入/註冊").click()        time.sleep(2)        driver.find_element_by_android_uiautomator(‘new UiSelector().resourceId("username")‘).clear()        time.sleep(2)        driver.find_element_by_android_uiautomator(‘new UiSelector().resourceId("username")‘).send_keys(‘xzbuyer‘)        time.sleep(2)        driver.find_element_by_android_uiautomator(‘new UiSelector().resourceId("password")‘).clear()        time.sleep(2)        driver.find_element_by_android_uiautomator(‘new UiSelector().resourceId("password")‘).send_keys(‘1111112‘)        time.sleep(2)        driver.find_element_by_accessibility_id(u"登入").click()        time.sleep(18)        get_alertMessage = driver.find_element_by_id(‘android:id/message‘).text        time.sleep(2)        print (get_alertMessage[0:5])        # if get_alertMessage == u‘使用者不存在‘:        #     print u"使用者不存在,用例執行成功!"        # else:        #     print u"用例執行失敗!"        #    # 測試正常登入    def test_cLogin(self):        driver = self.driver        time.sleep(5)        driver.find_element_by_accessibility_id(u"我的").click()        time.sleep(5)        driver.find_element_by_accessibility_id(u"登入/註冊").click()        time.sleep(2)        driver.find_element_by_android_uiautomator(‘new UiSelector().resourceId("username")‘).clear()        time.sleep(2)        driver.find_element_by_android_uiautomator(‘new UiSelector().resourceId("username")‘).send_keys(‘xzbuyer‘)        time.sleep(2)        driver.find_element_by_android_uiautomator(‘new UiSelector().resourceId("password")‘).clear()        time.sleep(2)        driver.find_element_by_android_uiautomator(‘new UiSelector().resourceId("password")‘).send_keys(‘111111‘)        time.sleep(2)        driver.find_element_by_accessibility_id(u"登入").click()        time.sleep(2)        # 判斷是否登入成功        print (driver.find_element_by_accessibility_id(u"西藏醫藥銷售公司(測試買家)").get_attribute(‘name‘))        nickName = driver.find_element_by_accessibility_id(u"西藏醫藥銷售公司(測試買家)").get_attribute(‘name‘)        temp = nickName[0:2]        print  (temp)        if nickName == u‘西藏醫藥銷售公司(測試買家)‘:            print (‘登入成功!‘)        else:            print (‘登入失敗!‘)    def tearDown(self):        self.driver.close_app()        self.driver.quit()

 

Python Appium 元素定位方法簡單介紹

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.