Appium之WebView自动化
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) # 返回键