WebView的測試:主要作用在混合(Hybrid)的應用
* 一部分是原生界面和代碼,而另一部分是內嵌網頁
* 比如微信、支付寶
* 內嵌了一個瀏覽器內核,由瀏覽器內核實現的
安卓應用中的內嵌的展示網頁內容的模塊,我們稱之為webview
准備工作:
app修改編譯 ==== 需要添加webview調用 ---- 對webview對象加入setWebContentsDebuggingEnable的調用
直接讓開發人員在下面這段代碼中加入一句代碼:
protected void onCrete(Bundle saveInstanceState){
super.onCreate(savedInstanceState);
WebView myWebView = (WebView) findViewById(R.id.xxxwebview);
myWebView.setWebContentsDebuggingEnabled(true); # 加上這句代碼
};
如果不知道怎么說,簡單總結一句話:“幫忙加一下webview的debug調用”就好。
webview有兩種情況:
① webview的內容 不依賴所在app
方法:直接用chrome瀏覽器F12里面的手機模式打開對應的網頁
- 只是打開一個url
- 直接使用chrome瀏覽器打開對應的網頁
- 使用手機模式
② 被測應用webview與app原生有交互,依賴app
方法:通過chrome瀏覽器的遠程調試功能(前提是本電腦可以正常上網)
詳細步驟: - 確保被測試app在手機上打開
- 打開chrome瀏覽器,地址輸入chrome://inspect
- 等待界面顯示如下 ,這里就不截圖了
Appium自動化webview:
* appium中把所有的界面環境 稱之為context
* native部分的context名字一般為NATIVE_APP
* webview部分的context則為WEBVIEW_XXX (應用app package名)
* 我們怎么查看當前有哪些context呢? --------------- driver.contexts
* 而顯示當前context的則是 ------------- driver.current_context
通知查看》》
安卓的系統通知在通知欄
打開通知欄 driver.open_notifications()
查看通知內容
返回應用 driver.press_keycode(4) # 返回鍵