摘要:使用進(jìn)行測(cè)試需要開發(fā)人員配合打開一個(gè)的開關(guān)。真機(jī)測(cè)試時(shí),必須在應(yīng)用中打開調(diào)試開關(guān)。點(diǎn)擊想要調(diào)試的下方的鏈接,就可以查看這個(gè)頁面的源代碼了。通過源代碼就可以查看并確定元素定位表達(dá)式了。
Hybrid App(混合模式移動(dòng)應(yīng)用)是介于 Web-app、Native-app 之間的 app,本質(zhì)上是 Native-app 中嵌入 WebView 組件,在 WebView 組件里可以訪問 Web App。Hybrid App 在給用戶良好交互體驗(yàn)的同時(shí),還具備了 Web App 的跨平臺(tái)、熱更新機(jī)制等優(yōu)勢(shì)。
Android WebView 在 Android 平臺(tái)上是一個(gè)特殊的 View,用它來展示網(wǎng)頁內(nèi)容。WebView 內(nèi)部實(shí)現(xiàn)是采用渲染引擎來展示 View 的內(nèi)容,提供網(wǎng)頁前進(jìn)后退、網(wǎng)頁放大、縮小、搜索等功能。使用 WebView 進(jìn)行測(cè)試需要開發(fā)人員配合打開一個(gè) 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)試和測(cè)試 WebView。真機(jī)測(cè)試時(shí),必須在應(yīng)用中打開 WebView 調(diào)試開關(guān)。要啟用 WebView 調(diào)試,請(qǐng)?jiān)?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); }}
開啟這個(gè)開關(guān)之后,手機(jī)端打開被測(cè)的 WebView 頁面,然后在電腦端 Chrome 瀏覽器地址欄錄入 “chrome://inspect” 將顯示設(shè)備上的 WebView 列表。
點(diǎn)擊想要調(diào)試的 WebView 下方的 inspect 鏈接,就可以查看這個(gè)頁面的源代碼了。通過源代碼就可以查看并確定元素定位表達(dá)式了。
如果遇到 Chrome 瀏覽器版本和 Chromedriver 版本不匹配的問題,可以參見:https://ceshiren.com/t/topic/3275
切換到 WebView 頁面,就可以使用 Selenium 操作元素。
driver.switch_to.context 方法可以從原生頁面切換到 WebView 頁面,示例代碼如下:
webview = driver.contexts[-1]driver.switch_to.context(webview)
雪球案例,打開雪球應(yīng)用,點(diǎn)擊“交易”,點(diǎn)擊“A 股開戶”進(jìn)入到開戶頁,驗(yàn)證頁面正確。如下圖:
實(shí)現(xiàn)的代碼片斷如下:
def test_webview(self): # 點(diǎn)擊交易 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) # 點(diǎn)擊"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 后,打開一個(gè)包含 H5 的頁面,系統(tǒng)默認(rèn)是 Native 的上下文。如果要操作 H5 上的元素,則需要切換到 WEBVIEW 的上下文。
上面的代碼先通過 driver.contexts 找到所有的 contexts(即上下文),循環(huán)遍歷這個(gè)contexts,找到目標(biāo)的 WEBVIEW,然后切換到這個(gè) WEBVIEW 中,再執(zhí)行相應(yīng)的操作。這時(shí)就可以使用 Selenium 的定位方式到 H5 頁面的元素了。
app自動(dòng)化測(cè)試(Android)Andriod WebView測(cè)試就講完了,大家學(xué)會(huì)了么?我們下一期為大家講解微信小程序測(cè)試,有興趣的小伙伴可以關(guān)注一下哦!
以上筆者的經(jīng)歷更像一張橫向的知識(shí)網(wǎng),創(chuàng)建了一個(gè)交流平臺(tái) 914172719 ,群內(nèi)有各種技術(shù)同行交流、學(xué)習(xí)資料、面試經(jīng)驗(yàn)等。其中用到j(luò)enkins、docker、moutebank、python編程等,還需要花更多的精力去深入學(xué)習(xí),當(dāng)每項(xiàng)技能都能掌握到一定深度,才能稱為一個(gè)完整的知識(shí)體系。
最后: 可以關(guān)注公眾號(hào):傷心的辣條 ! 進(jìn)去有許多資料共享!資料都是面試時(shí)面試官必問的知識(shí)點(diǎn),也包括了很多測(cè)試行業(yè)常見知識(shí),其中包括了有基礎(chǔ)知識(shí)、Linux必備、Shell、互聯(lián)網(wǎng)程序原理、Mysql數(shù)據(jù)庫、抓包工具專題、接口測(cè)試工具、測(cè)試進(jìn)階-Python編程、Web自動(dòng)化測(cè)試、APP自動(dòng)化測(cè)試、接口自動(dòng)化測(cè)試、測(cè)試高級(jí)持續(xù)集成、測(cè)試架構(gòu)開發(fā)測(cè)試框架、性能測(cè)試、安全測(cè)試等。
如果我的博客對(duì)你有幫助、如果你喜歡我的博客內(nèi)容,請(qǐng) “點(diǎn)贊” “評(píng)論” “收藏” 一鍵三連哦!
轉(zhuǎn)行面試,跳槽面試,軟件測(cè)試人員都必須知道的這幾種面試技巧!
面試經(jīng):一線城市搬磚!又面軟件測(cè)試崗,5000就知足了…
面試官:工作三年,還來面初級(jí)測(cè)試?恐怕你的軟件測(cè)試工程師的頭銜要加雙引號(hào)…
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/119656.html
摘要:正是因?yàn)檫@樣的協(xié)議存在一些自動(dòng)化測(cè)試框架可以使用多種語言編寫測(cè)試腳本。支持了所有的主流瀏覽器,同時(shí)還支持了和的移動(dòng)應(yīng)用測(cè)試。接下來就帶著大家一步一步使用進(jìn)行進(jìn)行自動(dòng)化測(cè)試全局安裝的如果覺得比較慢,就換淘寶的鏡像吧。 Macaca macaca是阿里開源的基于Node.js開發(fā)的自動(dòng)化測(cè)試工具,支持native,hybird,moblie web,關(guān)于macaca具體的內(nèi)容參見官網(wǎng)mac...
摘要:然而,并沒有直接監(jiān)聽軟鍵盤的原生事件,只能通過軟鍵盤彈起或收起,引發(fā)頁面其他方面的表現(xiàn)間接監(jiān)聽,曲線救國(guó)。軟鍵盤收起表現(xiàn)觸發(fā)輸入框以外的區(qū)域時(shí),輸入框失去焦點(diǎn),軟鍵盤收起。可以讓軟鍵盤彈起后,讓焦點(diǎn)元素再次滾到可視區(qū),強(qiáng)迫滾到位。 前言 最近一段時(shí)間在做 H5 聊天項(xiàng)目,踩過其中一大坑:輸入框獲取焦點(diǎn),軟鍵盤彈起,要求輸入框吸附(或頂)在輸入法框上。需求很明確,看似很簡(jiǎn)單,其實(shí)不然。從...
摘要:接下來,我將從原理優(yōu)缺點(diǎn)等方面為大家分享跨平臺(tái)技術(shù)演進(jìn)。小程序年是微信小程序飛速發(fā)展的一年,年,各大廠商快速跟進(jìn),已經(jīng)有了很大的影響力。下面,我們以微信小程序?yàn)槔治鲂〕绦虻募夹g(shù)架構(gòu)。 前言 大家好,我是simbawu ,@BooheeFE Team Leader,關(guān)于這篇文章,有問題歡迎來這里討論。 隨著移動(dòng)互聯(lián)網(wǎng)的普及和快速發(fā)展,手機(jī)成了互聯(lián)網(wǎng)行業(yè)最大的流量分發(fā)入口。以及隨著5G...
閱讀 971·2021-11-24 10:42
閱讀 3517·2021-11-19 11:34
閱讀 2653·2021-09-29 09:35
閱讀 2537·2021-09-09 09:33
閱讀 684·2021-07-26 23:38
閱讀 2527·2019-08-30 10:48
閱讀 1395·2019-08-28 18:07
閱讀 430·2019-08-26 13:44