Appium+python移動自動化測試(四)--Monitor/uiautomatorviewer工具及元素定位方法


寫在前面:

本文介紹識別元素的工具和元素的定位方法,識別元素的工具主要有uiautomator和monitor,以及Appium Inspector(Windows下小編在1.7.0之后版本可使用,1.4.16版本不行),本系列教程用的appium1.4.16本文,故暫不介紹Appium Inspector。

一、常用的識別元素的工具介紹

  1. 啟動uiautomatorviewer.bat/monitor.bat。打開sdk/tools目錄找到uiautomatorviewer.bat/monitor.bat.如圖:

     

  2. 雙擊后啟動,啟動后如圖



二、Monitor連接手機

  1. win+R快捷鍵輸入cmd打開,輸入adb devices,確認當前有設備接入。
  2. 打開魔漫相機主界面,在Monitor界面點擊手機機器人小圖標,此按鈕每次都會刷新最新界面

三、定位元素

  1. 移動鼠標到需要定位的元素區域,並點擊一下,使紅色實線條框住。點擊按鈕進漫畫

    Node Detail里能看到元素對應的屬性
    resource-id:com.manboker.headportrait:id/entry_album_set
    class:android.widget.ImageView
    index 界面有多個相同屬性時使用

四、點擊我的按鈕

  通過resource-id定位並點擊.最終代碼如下:

#coding:utf-8
import time from appium import webdriver desired_caps = {} desired_caps['deviceName'] = '192.168.199.101:5555' desired_caps['platformName'] = 'Android' desired_caps['platformVersion'] = '5.0' desired_caps['appPackage'] = 'com.manboker.headportrait' desired_caps['appActivity'] = 'com.manboker.headportrait.activities.FirstActivity' driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) time.sleep(8)#休眠8秒
driver.find_element_by_id('com.manboker.headportrait:id/entry_album_set').click()#點擊進入我的頁面 driver.quit()

五、Appium工具簡單使用介紹

  1. 雙擊appium.exe打開,進setting界面。如下截圖1是被測apk的路徑,截圖2查看app的包名及Launch Activity,截圖3是被測app的設備名
  2. 開啟appium
    確認手機成功電腦,點擊搜索按鈕右側的三角形圖標啟動appium服務,當界面出現如下現象則證明服務已啟動。
  3. Remote遠程控制(appium--General Setting界面)

    appium默認服務地址是127.0.0.1端口號4723,一般在本地機器上調試的話,無需修改。
    若是遠程到某台自動化測試電腦運行則此ip就能派上用場了,通過修改如下代碼即可
    driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

    改成:

    driver = webdriver.Remote('http://192.168.0.105:4723/wd/hub', desired_caps)

    截圖如下:ipconfig查看電腦ip


  4. 遠程連接
    瀏覽器輸入:http://192.168.0.105:4723/wd/hub,看到如下界面,證明遠程鏈接成功
  5. 腳本里的代碼修改后如下
    #coding:utf-8
    import time
    from appium import webdriver
    desired_caps = {}
    desired_caps['deviceName'] = '192.168.199.101:5555'
    desired_caps['platformName'] = 'Android'
    desired_caps['platformVersion'] = '5.0'
    desired_caps['appPackage'] = 'com.manboker.headportrait'
    desired_caps['appActivity'] = 'com.manboker.headportrait.activities.FirstActivity'
    driver = webdriver.Remote('http://192.168.0.105:4723/wd/hub', desired_caps)
    time.sleep(8)#休眠8秒
    driver.find_element_by_id('com.manboker.headportrait:id/entry_album_set').click()
    time.sleep(5)
    driver.quit()

     

六、元素定位(常用方法)

  1. 通過id定位
    取resource-id的值:driver.find_element_by_id('com.manboker.headportrait:id/entry_album_set')
  2. 通過class_name定位
    取class內容:driver.find_element_by_class_name("android.widget.ImageView")
  3. 通過text定位
    使用text的內容:driver.find_elements_by_android_uiautomator("new UiSelector().text(\"登錄\")")
  4. 通過name定位:driver.find_element_by_name()
  5. 通過xpath定位:driver.find_element_by_xpath("//android.widget.TextView[@resource-id=\"com.manboker.headportrait:id/nologin_retry\"]")
  6. 通過css_selector定位:driver.find_element_by_css_selector()
    如上的方法pycharm輸入driver.find_element_by會自動匹配出來。

OK,本文就介紹到這,下篇介紹Appium Python API。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM