Appium自動化測試之微信h5元素識別和程式碼實戰
引子
總會有人問微信的自動化測試怎麼做。其實我不太明白,為啥你要對ta做自動化測試啊,除非你們公司產品是基於微信做的開發否則沒必要。即使一個公眾號我也覺得沒必要做自動化測試,基本功能點下沒問題就可以了,畢竟都是配置的,除非你後臺配置錯了。(有時候真搞不懂這胡亂的測試,你咋不把整個微信都測一遍啊)
微信的本質
微信其實就是一個混合的app,客戶端裡嵌入的webview,明白這個就好說了。大家一定要注意,app中的native可以用uiaotumator來檢視元素,但webview裡的ta是不行的可以使用chrome來檢視,這個是很多初學者不明白的地方。
如何檢視微信webview中的元素
幾個前提:
1、手機開啟【開發者模式】
2、app必須是debug模式(別問我怎麼弄,自己問開發去)
3、手機透過USB連線電腦,且能夠識別出來手機(不會的自己google去。。。)
4、可以* 牆 。。。你懂的
有了這幾個前提之後就可以正式開始了,敲黑板。。。。
1、開啟微信,在任意對話方塊中輸入debugx5.qq.com併傳送
2、點選傳送成功的debugx5.qq.com,稍等片刻進入設定頁面
3、切換到【資訊】,勾選【是否開啟tbs核心】,如圖
4、退出設定
5、進入【發現】>【看一看】
6、開啟chrome,位址列輸入chrome://inspect/#devices,可以看到裝置或者你訪問的資源(看不到的自己google,很多文章介紹)
7、隨便點選【看一看】裡的一篇文章,在chrome中會自動顯示出來,如下圖中的專題就是點選之後出來的
8、點選對應的【inspect】就可以看到頁面了,接下來就可以輕鬆識別元素了,和用f12檢視元素沒有區別,如果你還不會請自行面壁去吧
(此處需要*牆,否則顯示的是白頁)
程式碼實戰
上面這些搞定了,在Appium裡寫程式碼就簡單了,先說下關鍵的幾個點:
1、#必須加上此句
desired_caps['chromeOptions']={'androidProcess': 'com.tencent.mm:tools'}
小強提示:
微信的package name=com.tencent.mm,activity=com.tencent.mm.ui.LauncherUI,不要問我怎麼知道的。。。
2、#可以透過下面的語句輸出webview的名稱
contexts=driver.contexts
print('contexts=',contexts)
3、#使用下面的語句切換到指定的webview裡
driver.switch_to.context('WEBVIEW_com.tencent.mm:tools')
4、切換到webview裡面,剩下的定位方式和web一模一樣,就是上面講的元素識別方法
5、#如果想返回原生態的view,可以用下面的語句
driver.switch_to.context( "NATIVE_APP" ) #引數固定
#以開啟微信>點選【發現】>點選【看一看】>獲取文章列表中某個文章的標題為例,其中進入【看一看】之後就是webview了。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
from appium import webdriver
import time
#QQ群522720170
desired_caps = {}
desired_caps = {
'platformName': 'Android',
'platformVersion': '23',
'deviceName': 'Android Emulator',
'unicodeKeyboard': 'True',
'resetKeyboard': 'True',
'appPackage': 'com.tencent.mm',
'appActivity': 'com.tencent.mm.ui.LauncherUI',
'chromeOptions': {'androidProcess': 'com.tencent.mm:tools'}
}
driver = webdriver.Remote(')
time.sleep(10)
driver.find_element('name','發現').click()
time.sleep(10)
driver.find_element('name',"看一看").click()
time.sleep(10)
#獲取當前上下文
c=driver.contexts
print(c)
#輸出結果['NATIVE_APP', 'WEBVIEW_com.tencent.mm:tools']
#切換為 webview,名稱就是從上面的語句得來的
driver.switch_to.context('WEBVIEW_com.tencent.mm:tools')
#獲取h3標籤的文字並列印出來
titles = driver.find_elements('tag name','h3')
print(titles[2].text)
|
至此就全部搞定了,是不是很簡單?
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69942496/viewspace-2653230/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Playwright自動化測試工具之元素定位實戰
- Appium 之測試微信小程式APP微信小程式
- Appium之測試微信小程式APP微信小程式
- 測試開發之自動化篇-Appium指令碼開發APP指令碼
- 微信小程式及公眾號H5自動化測試攻略微信小程式H5
- UI自動化測試實戰UI
- Appium自動化測試之常用的adb命令APP
- Appium 做 flutter 自動化測試實踐&採坑APPFlutter
- [Selenium自動化測試實戰] 如何視覺化驗證元素的定位視覺化
- 微信小程式設計師自動化測試微信小程式程式設計師
- Appium自動化(15) - 針對 webview 進行自動化測試APPWebView
- 介面自動化測試實戰之智慧場景如何攻破
- appium uiautomator 移動端自動化測試工具APPUI
- Appium iOS 測試指令碼開發實戰APPiOS指令碼
- FAutoTest一個 H5、小程式自動化測試框架H5框架
- AutoRunner 功能自動化測試專案實訓之自動化測試原理(一)
- iOS appium UI 自動化測試配置可控 xpathiOSAPPUI
- Jenkins整合appium自動化測試(Windows篇)JenkinsAPPWindows
- 自動化測試進階課程——Selenium自動化測試通關實戰班
- H5 自動化測試框架推薦H5框架
- Android + Appium 自動化測試完整的環境配置及程式碼詳解AndroidAPP
- 自動化裝置測試與自動化測試的區別
- Selenium 自動化測試從零實戰
- Appium+Python實現iOS自動化測試~環境搭建APPPythoniOS
- Appium自動化(9) - appium元素定位的快速入門APP
- UI自動化測試-web元素選擇UIWeb
- Appium上下文和H5測試(一)APPH5
- Appium上下文和H5測試(二)APPH5
- 搭建appium+python自動化測試環境APPPython
- 小程式自動化測試--測試3
- 手工測試和自動化測試 BattleBAT
- 測試開發之自動化篇-自動化測試框架設計框架
- iOS自動化測試工具Appium在mac上安裝和使用教程iOSAPPMac
- APPIUM-Android自動化元素定位方式APPAndroid
- 功能測試、自動化測試、效能測試的區別
- 介面自動化測試之PHPUnit-框架程式碼編寫2PHP框架
- 『與善仁』Appium基礎 — 8、Appium自動化測試框架介紹APP框架
- 自動化測試QTP知識框架QT框架