
Hybrid App(混合模式移動應用)是介于 Web-app、Native-app 之間的 app,本質上是 Native-app 中嵌入 WebView 組件,在 WebView 組件里可以訪問 Web App,Hybrid App 在給用戶良好互動體驗的同時,還具備了 Web App 的跨平臺、熱更新機制等優勢,
Android WebView 在 Android 平臺上是一個特殊的 View,用它來展示網頁內容,WebView 內部實作是采用渲染引擎來展示 View 的內容,提供網頁前進后退、網頁放大、縮小、搜索等功能,使用 WebView 進行測驗需要開發人員配合打開一個 WebView 的開關,
WebView開關
WebView 是手機應用內嵌的瀏覽器,在 Android 4.4 之前 WebView 內核采用的是 WebKit,Android 4.4 之后才用的是 Chrome 作為內置瀏覽器,它是用來加載 HTML 頁面的控制元件,在模擬器(android6.0 版本)中是默認打開 WebView 開關的,可以直接除錯和測驗 WebView,真機測驗時,必須在應用中打開 WebView 除錯開關,要啟用 WebView 除錯,請在 WebView 類上呼叫靜態方法 setWebContentsDebuggingEnabled,
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
if (0 != (getApplicationInfo().flags &\
ApplicationInfo.FLAG_DEBUGGABLE))
{ WebView.setWebContentsDebuggingEnabled(true); }
}
開啟這個開關之后,手機端打開被測的 WebView 頁面,然后在電腦端 Chrome 瀏覽器地址欄錄入 “chrome://inspect” 將顯示設備上的 WebView 串列,
點擊想要除錯的 WebView 下方的 inspect 鏈接,就可以查看這個頁面的源代碼了,通過源代碼就可以查看并確定元素定位運算式了,

如果遇到 Chrome 瀏覽器版本和 Chromedriver 版本不匹配的問題,可以參見:https://ceshiren.com/t/topic/3275
WebView 測驗
切換到 WebView 頁面,就可以使用 Selenium 操作元素,
driver.switch_to.context 方法可以從原生頁面切換到 WebView 頁面,示例代碼如下:
webview = driver.contexts[-1]
driver.switch_to.context(webview)
WebView 案例
雪球案例,打開雪球應用,點擊“交易”,點擊“A 股開戶”進入到開戶頁,驗證頁面正確,如下圖:

實作的代碼片斷如下:
def test_webview(self):
# 點擊交易
self.driver.find_element(MobileBy.XPATH, '//*[@text="交易"]').click()
# 列印當前頁面有哪些背景關系
print(self.driver.contexts)
e = self.driver.contexts
for context in self.driver.contexts[::-1]:
if 'webview' in context.lower():
aim = context
break
# 切換背景關系
self.driver.switch_to.context(aim)
# 點擊'A股開戶'
print(self.driver.window_handles)
A_locator = (MobileBy.XPATH, '//*[@id="Layout_app_3V4"]/div/div/ul/li[1]/div[2]/h1')
WebDriverWait(self.driver, 10).until(expected_conditions.element_to_be_clickable(A_locator))
進入到 APP 后,打開一個包含 H5 的頁面,系統默認是 Native 的背景關系,如果要操作 H5 上的元素,則需要切換到 WEBVIEW 的背景關系,
上面的代碼先通過 driver.contexts 找到所有的 contexts(即背景關系),回圈遍歷這個contexts,找到目標的 WEBVIEW,然后切換到這個 WEBVIEW 中,再執行相應的操作,這時就可以使用 Selenium 的定位方式到 H5 頁面的元素了,
app自動化測驗(Android)Andriod WebView測驗就講完了,大家學會了么?我們下一期為大家講解微信小程式測驗,有興趣的小伙伴可以關注一下哦!
以上筆者的經歷更像一張橫向的知識網,創建了一個交流平臺 914172719 ,群內有各種技術同行交流、學習資料、面試經驗等,其中用到jenkins、docker、moutebank、python編程等,還需要花更多的精力去深入學習,當每項技能都能掌握到一定深度,才能稱為一個完整的知識體系,

最后: 可以關注公眾號:傷心的辣條 ! 進去有許多資料共享!資料都是面試時面試官必問的知識點,也包括了很多測驗行業常見知識,其中包括了有基礎知識、Linux必備、Shell、互聯網程式原理、Mysql資料庫、抓包工具專題、介面測驗工具、測驗進階-Python編程、Web自動化測驗、APP自動化測驗、介面自動化測驗、測驗高級持續集成、測驗架構開發測驗框架、性能測驗、安全測驗等,
如果我的博客對你有幫助、如果你喜歡我的博客內容,請 “點贊” “評論” “收藏” 一鍵三連哦!
好文推薦
轉行面試,跳槽面試,軟體測驗人員都必須知道的這幾種面試技巧!
面試經:一線城市搬磚!又面軟體測驗崗,5000就知足了…
面試官:作業三年,還來面初級測驗?恐怕你的軟體測驗工程師的頭銜要加雙引號…
什么樣的人適合從事軟體測驗作業?
那個準點下班的人,比我先升職了…
測驗崗反復跳槽,跳著跳著就跳沒了…
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/298609.html
標籤:其他
