程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Appium+Python移動端 實戰——教你如何xpath定位自動化測試

編輯:Python

今日份問題
我:手動就可以操作簡單的測試,為什麼要自動化測試
老師:主要是回歸測試。改了bug之後,重新再來測試。這樣用回歸測試就比手動測試要節約成本

Appium+Python移動端實戰

  • 一、前提
  • 二、上實戰

一、前提

  1. 開啟模擬器(我的是直接用的Android Studio的模擬器,所以在開啟模擬器之前我還要開啟Android Studio)
  2. 打開appium服務器
  3. 打開pycharm
  4. 打開cmd

https://blog.csdn.net/hanhanwanghaha寶藏女孩 歡迎您的關注!
歡迎關注微信公眾號:寶藏女孩的成長日記
如有轉載,請注明出處(如不注明,盜者必究)

二、上實戰

打開模擬器
在cmd中輸入代碼:

adb shell dumpsys window | findstr mCurrentFocus

可查詢到包名和界面名(界面名可以省略包名,但是我害怕漏了那個點,一般都不省略)
比如說我的包名:

com.google.android.apps.messaging

界面名

.conversation.screen.ConversationActivity

or

com.google.android.apps.messaging.conversation.screen.ConversationActivity

打開appium,進入服務器,點擊搜索框,進入界面

點擊

進入編輯界面,在框裡面輸入代碼連接模擬器
代碼如下

下面的代碼注釋:
第一條:平台的名字,不區分大小寫,“Android”;“ios”
第二條:平台的版本,可以不寫後續版本號
第三條:設備的名字,不能為空 (cmd後 adb devices可以看)
第四條:要打開的應用程序包名(上面cmd的命令可查出來)
第五條:要打開的應用程序的界面名(上面cmd的命令可查出來)
第六條:設備的名字
{

"platformName": "Android",
"platformVersion": "5.0",
"deviceName": "emulator-5554",
"appPackage": "com.google.android.apps.messaging",
"appActivity": "com.google.android.apps.messaging.ui.ConversationListActivity",
"udid": "emulator-5554"
}


填完之後記得保存

在點擊Start Session,就可以進入appium的自動化界面,模擬器也會自動跟著運行

接下來我們就來查看我們要按的鍵的xpath路徑,點擊我想要自動運行的鍵,在Select Element中可以看到xpath路徑。

將路徑的中括號部分保留下來,例如我的是

//android.widget.Button[@content-desc="Start chat"]

需要的是

[@content-desc="Start chat"]

但放在pycharm中的會有報錯,因此就需要換引號(這個自行調整就是)
於是放在pycahrm 中的python代碼就應該是

driver.find_element_by_xpath("//*[@content-desc='Start chat']").click() #點擊事件

上實戰代碼

from appium import webdriver
import time
desired_caps=dict()
desired_caps['platformName']='Android'#平台的名字,不區分大小寫,“Android”;“ios”
desired_caps['platformVersion']='5.0'#平台的版本,可以不寫後續版本號
desired_caps['deviceName']='emulator-5554'#設備的名字,不能為空
# desired_caps['appPackage']='com.google.android.apps.messaging' #要打開的應用程序包名
# desired_caps['appActivity']='.ui.ConversationListActivity'#要打開的應用程序的界面名
desired_caps['udid']='emulator-5554'#連接設備的唯一標識
driver=webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)#連接 appium 服務器
driver.start_activity("com.google.android.apps.messaging", "com.google.android.apps.messaging.ui.ConversationListActivity") #包名(前面是包名,後面是界面名)
time.sleep(3)
driver.find_element_by_xpath("//*[@content-desc='Conversation list']").click() #點擊事件
time.sleep(3)
driver.find_element_by_xpath("//*[@content-desc='Start chat']").click() #點擊事件
time.sleep(5)
driver.quit()
#如何定位一組元素,比如說我要打開設置的第三個選項
# driver.start_activity("com.android.settings",".Settings")
# A=driver.find_elements_by_class_name("android.widget.LinearLayout")
# A[6].click()
# time.sleep(5)
# driver.quit()

隨後,我的app就可以自動運行了
如下

https://blog.csdn.net/hanhanwanghaha歡迎關注這個超級無敵可愛的人鴨,有什麼問題留言私信皆可,看見必回!
創作不易,如有轉載,請注明出處


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved