成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

干貨|app自動化測試之Andriod WebView如何測試

shinezejian / 2541人閱讀

摘要:使用進(jìn)行測試需要開發(fā)人員配合打開一個的開關(guān)。真機(jī)測試時,必須在應(yīng)用中打開調(diào)試開關(guān)。點擊想要調(diào)試的下方的鏈接,就可以查看這個頁面的源代碼了。通過源代碼就可以查看并確定元素定位表達(dá)式了。


Hybrid App(混合模式移動應(yīng)用)是介于 Web-app、Native-app 之間的 app,本質(zhì)上是 Native-app 中嵌入 WebView 組件,在 WebView 組件里可以訪問 Web App。Hybrid App 在給用戶良好交互體驗的同時,還具備了 Web App 的跨平臺、熱更新機(jī)制等優(yōu)勢。

Android WebView 在 Android 平臺上是一個特殊的 View,用它來展示網(wǎng)頁內(nèi)容。WebView 內(nèi)部實現(xiàn)是采用渲染引擎來展示 View 的內(nèi)容,提供網(wǎng)頁前進(jìn)后退、網(wǎng)頁放大、縮小、搜索等功能。使用 WebView 進(jìn)行測試需要開發(fā)人員配合打開一個 WebView 的開關(guān)。

WebView開關(guān)

WebView 是手機(jī)應(yīng)用內(nèi)嵌的瀏覽器,在 Android 4.4 之前 WebView 內(nèi)核采用的是 WebKit,Android 4.4 之后才用的是 Chrome 作為內(nèi)置瀏覽器。它是用來加載 HTML 頁面的控件。在模擬器(android6.0 版本)中是默認(rèn)打開 WebView 開關(guān)的,可以直接調(diào)試和測試 WebView。真機(jī)測試時,必須在應(yīng)用中打開 WebView 調(diào)試開關(guān)。要啟用 WebView 調(diào)試,請在 WebView 類上調(diào)用靜態(tài)方法 setWebContentsDebuggingEnabled。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {    if (0 != (getApplicationInfo().flags &/     ApplicationInfo.FLAG_DEBUGGABLE))    { WebView.setWebContentsDebuggingEnabled(true); }}

開啟這個開關(guān)之后,手機(jī)端打開被測的 WebView 頁面,然后在電腦端 Chrome 瀏覽器地址欄錄入 “chrome://inspect” 將顯示設(shè)備上的 WebView 列表。

點擊想要調(diào)試的 WebView 下方的 inspect 鏈接,就可以查看這個頁面的源代碼了。通過源代碼就可以查看并確定元素定位表達(dá)式了。

如果遇到 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 案例

雪球案例,打開雪球應(yīng)用,點擊“交易”,點擊“A 股開戶”進(jìn)入到開戶頁,驗證頁面正確。如下圖:

實現(xiàn)的代碼片斷如下:

def test_webview(self):    # 點擊交易    self.driver.find_element(MobileBy.XPATH, "http://*[@text="交易"]").click()    # 打印當(dāng)前頁面有哪些上下文    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, "http://*[@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))

進(jìn)入到 APP 后,打開一個包含 H5 的頁面,系統(tǒng)默認(rèn)是 Native 的上下文。如果要操作 H5 上的元素,則需要切換到 WEBVIEW 的上下文。

上面的代碼先通過 driver.contexts 找到所有的 contexts(即上下文),循環(huán)遍歷這個contexts,找到目標(biāo)的 WEBVIEW,然后切換到這個 WEBVIEW 中,再執(zhí)行相應(yīng)的操作。這時就可以使用 Selenium 的定位方式到 H5 頁面的元素了。

app自動化測試(Android)Andriod WebView測試就講完了,大家學(xué)會了么?我們下一期為大家講解微信小程序測試,有興趣的小伙伴可以關(guān)注一下哦!

以上筆者的經(jīng)歷更像一張橫向的知識網(wǎng),創(chuàng)建了一個交流平臺 914172719 ,群內(nèi)有各種技術(shù)同行交流、學(xué)習(xí)資料、面試經(jīng)驗等。其中用到j(luò)enkins、docker、moutebank、python編程等,還需要花更多的精力去深入學(xué)習(xí),當(dāng)每項技能都能掌握到一定深度,才能稱為一個完整的知識體系。

最后: 可以關(guān)注公眾號:傷心的辣條 ! 進(jìn)去有許多資料共享!資料都是面試時面試官必問的知識點,也包括了很多測試行業(yè)常見知識,其中包括了有基礎(chǔ)知識、Linux必備、Shell、互聯(lián)網(wǎng)程序原理、Mysql數(shù)據(jù)庫、抓包工具專題、接口測試工具、測試進(jìn)階-Python編程、Web自動化測試、APP自動化測試、接口自動化測試、測試高級持續(xù)集成、測試架構(gòu)開發(fā)測試框架、性能測試、安全測試等。

如果我的博客對你有幫助、如果你喜歡我的博客內(nèi)容,請 “點贊” “評論” “收藏” 一鍵三連哦!


好文推薦

轉(zhuǎn)行面試,跳槽面試,軟件測試人員都必須知道的這幾種面試技巧!

面試經(jīng):一線城市搬磚!又面軟件測試崗,5000就知足了…

面試官:工作三年,還來面初級測試?恐怕你的軟件測試工程師的頭銜要加雙引號…

什么樣的人適合從事軟件測試工作?

那個準(zhǔn)點下班的人,比我先升職了…

測試崗反復(fù)跳槽,跳著跳著就跳沒了…

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/119656.html

相關(guān)文章

  • 使用macaca進(jìn)行移動端hybird動化測試(二)

    摘要:正是因為這樣的協(xié)議存在一些自動化測試框架可以使用多種語言編寫測試腳本。支持了所有的主流瀏覽器,同時還支持了和的移動應(yīng)用測試。接下來就帶著大家一步一步使用進(jìn)行進(jìn)行自動化測試全局安裝的如果覺得比較慢,就換淘寶的鏡像吧。 Macaca macaca是阿里開源的基于Node.js開發(fā)的自動化測試工具,支持native,hybird,moblie web,關(guān)于macaca具體的內(nèi)容參見官網(wǎng)mac...

    wzyplus 評論0 收藏0
  • 可能這些是你想要的H5軟鍵盤兼容方案

    摘要:然而,并沒有直接監(jiān)聽軟鍵盤的原生事件,只能通過軟鍵盤彈起或收起,引發(fā)頁面其他方面的表現(xiàn)間接監(jiān)聽,曲線救國。軟鍵盤收起表現(xiàn)觸發(fā)輸入框以外的區(qū)域時,輸入框失去焦點,軟鍵盤收起??梢宰屲涙I盤彈起后,讓焦點元素再次滾到可視區(qū),強(qiáng)迫滾到位。 前言 最近一段時間在做 H5 聊天項目,踩過其中一大坑:輸入框獲取焦點,軟鍵盤彈起,要求輸入框吸附(或頂)在輸入法框上。需求很明確,看似很簡單,其實不然。從...

    stackvoid 評論0 收藏0
  • 跨平臺技術(shù)演進(jìn)

    摘要:接下來,我將從原理優(yōu)缺點等方面為大家分享跨平臺技術(shù)演進(jìn)。小程序年是微信小程序飛速發(fā)展的一年,年,各大廠商快速跟進(jìn),已經(jīng)有了很大的影響力。下面,我們以微信小程序為例,分析小程序的技術(shù)架構(gòu)。 前言 大家好,我是simbawu ,@BooheeFE Team Leader,關(guān)于這篇文章,有問題歡迎來這里討論。 隨著移動互聯(lián)網(wǎng)的普及和快速發(fā)展,手機(jī)成了互聯(lián)網(wǎng)行業(yè)最大的流量分發(fā)入口。以及隨著5G...

    魏憲會 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<