Appium自動化測試實現(xiàn)H5頁面元素定位
簡介
在現(xiàn)在的移動端App中,由于開發(fā)效率、需求頻繁變更的需求情況下,經常有相關的運營需求,經常要進行更新,如果全部采用原生開發(fā),需要的成本比較高,后來就出現(xiàn)了內嵌的H5頁面。那么這些H5頁面元素該如何進行定位操作呢?
針對這種H5場景直接使用前面所講的方法來進行定位是不行,因為前面的都是基于Andriod原生控件進行元素定位,而Web網頁是單獨的B/S架構,兩者的運行環(huán)境不同因此需要進行上下文(context)切換,然后對H5頁面元素進行定位操作。
上下文:在程序中context我們可以理解為當前對象在程序中所處的一個環(huán)境。 比如前面提到的App一個界面是屬于Activity類型,也就是Android界面環(huán)境,但是當訪問內嵌的網頁是屬于另外一個環(huán)境(網頁環(huán)境),兩者處于不同的一個環(huán)境。
H5元素定位準備工作
Webview 調試模式是否開啟檢查
在自動化腳本中,進入到對應的H5頁面,打印輸出當前context,如果一直顯示為Natvie App,則webview未開啟
打開app對應的h5頁面,在 chrome://inspect/#devices 地址中,檢查是否顯示對應的webview,如沒有,則當前未開啟調試模式
開啟方式:
在WebView類中調用靜態(tài)方法setWebContentsDebuggingEnabled,這種需要App開發(fā)人員操作。
if (Build.VERSION.SDK_INT >=Build.VERSION_CODES.KITKAT) {
WebView.setWebContentsDebuggingEnabled(true);
拿到H5頁面地址和chrom版本信息
本次測試應用為學科網APP
- 手機與電腦連接,開啟USB調試模式,通過adb devices可查看到此設備
- 在手機端(模擬器)打開應用,進入H5頁面

在電腦端Chrome瀏覽器地址欄輸入chrome://inspect/#devices,進入調試模式
查看顯示出來的H5頁面地址
地址:https://m.zxxk.com/activity/appnewusergift/
chrom瀏覽器版本:75.0.3770.143

下載對應Chromedriver
打開Chromedriver下載地址進行下載對應版本
http://chromedriver.storage.googleapis.com/index.html?path=75.0.3770.140/

將下載的驅動放到一個路徑,例如:C:\Users\Administrator\Desktop\chromedriver_win32 contexts上下文操作
獲取所有上下文
driver.contexts
獲取當前上下文
driver.context
切換上下文
方法一:
driver.switch_to.context('WEBVIEW_com.xkw.client')
方法二:
contexts = driver.contexts driver.switch_to.context(contexts[-1])
切回原生應用
driver.switch_to.context('NATIVE_APP')實戰(zhàn)案例
實戰(zhàn)場景
- 啟動學科網APP應用,在發(fā)現(xiàn)頁面點擊現(xiàn)金券下載券領取活動
- 在活動落地頁,點擊一鍵領取大禮包按鈕
- 在點擊登錄注冊頁面的左上角的關閉按鈕
實戰(zhàn)代碼
# _*_ coding:utf-8 _*_
import time
from appium import webdriver
from appium.webdriver.common.appiumby import AppiumBy
desired_caps = {
"platformName": "Android",
"platformVersion": "7.1.2",
"udid": "127.0.0.1:62001",
"appPackage": "com.xkw.client",
"appActivity": "com.zxxk.page.main.LauncherActivity",
"noReset": True,
'automationName': 'uiautomator2',
"chromeOptions": {'w3c': False},
"chromedriverExecutable": r"C:\Users\Administrator\Desktop\chromedriver_win32\chromedriver.exe"
}
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
driver.implicitly_wait(30)
# 點擊活動入口
driver.find_element(AppiumBy.ID, "com.xkw.client:id/iv_horizontal_pic").click()
time.sleep(5)
# 獲取contexts
context = driver.contexts
# 切換到webview
driver.switch_to.context(context[-1])
driver.find_element(AppiumBy.ID, "getgifts").click()
time.sleep(1)
# 切換到Native
driver.switch_to.context("NATIVE_APP")
driver.find_element(AppiumBy.ID, "com.xkw.client:id/common_toolbar_back_img").click()
到此這篇關于Appium自動化測試實現(xiàn)H5頁面元素定位的文章就介紹到這了,更多相關Appium H5頁面元素定位內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Django 創(chuàng)建后臺,配置sqlite3教程
今天小編就為大家分享一篇Django 創(chuàng)建后臺,配置sqlite3教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11
Python統(tǒng)計文本詞匯出現(xiàn)次數(shù)的實例代碼
這篇文章主要介紹了Python統(tǒng)計文本詞匯出現(xiàn)次數(shù),這種問題在統(tǒng)計文本詞匯的次數(shù)時經常會遇到,今天給大家分享解決方案,通過實例代碼給大家講解,需要的朋友可以參考下2020-02-02
Ubuntu 20.04安裝Pycharm2020.2及鎖定到任務欄的問題(小白級操作)
這篇文章主要介紹了Ubuntu 20.04安裝Pycharm2020.2及鎖定到任務欄的問題,本教程給大家講解的很詳細,非常適合小白級操作,需要的朋友可以參考下2020-10-10

