五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

干貨|app自動(dòng)化測(cè)試之Andriod WebView如何測(cè)試

2022-10-21 10:33 作者:愛(ài)測(cè)軟件測(cè)試  | 我要投稿

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

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

WebView開(kāi)關(guān)

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

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { ?

?if (0 != (getApplicationInfo().flags &\ ? ? ApplicationInfo.FLAG_DEBUGGABLE)) ? ?{ WebView.setWebContentsDebuggingEnabled(true); }?

}

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

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

如果遇到 Chrome 瀏覽器版本和 Chromedriver 版本不匹配的問(wèn)題,可以參見(jiàn):

chromedriver下載地址與webview自動(dòng)化關(guān)鍵代碼

注意:測(cè)試開(kāi)發(fā)寶典中提及的觸屏操作自動(dòng)化鏈接改為:Appium-touch-actions?,請(qǐng)有意向者移步該帖進(jìn)行瀏覽 chromedriver的介紹與相關(guān)資料地址,方便自動(dòng)化測(cè)試工程師查閱 錯(cuò)誤提示 未安裝chromedriver No Chromedriver found that can automate Chrome ‘76.0.3809’. You could als…

WebView 測(cè)試

切換到 WebView 頁(yè)面,就可以使用 Selenium 操作元素。
driver.switch_to.context 方法可以從原生頁(yè)面切換到 WebView 頁(yè)面,示例代碼如下:

webview = driver.contexts[-1]?

driver.switch_to.context(webview)

WebView 案例

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

def test_webview(self): ??

? ? ?# 點(diǎn)擊交易 ? ? ?

?self.driver.find_element(MobileBy.XPATH, '//*[@text="交易"]').click() ? ? ? ?# 打印當(dāng)前頁(yè)面有哪些上下文?

? ? ? ?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股開(kāi)戶' ? ??

? ?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))

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

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



干貨|app自動(dòng)化測(cè)試之Andriod WebView如何測(cè)試的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
贵溪市| 冷水江市| 墨玉县| 渑池县| 栾川县| 将乐县| 靖宇县| 灵丘县| 寿阳县| 观塘区| 黄平县| 武汉市| 常熟市| 拜城县| 华容县| 汾西县| 资中县| 松阳县| 托里县| 昭平县| 新巴尔虎左旗| 满洲里市| 三台县| 枣强县| 上林县| 天祝| 锡林浩特市| 剑川县| 新沂市| 丰都县| 正定县| 靖江市| 万盛区| 时尚| 固始县| 宝鸡市| 永年县| 吉林省| 荣成市| 道孚县| 工布江达县|