手机自动化---内嵌网页或 WebView的测试

什么是WebView

1、混合(Hybrid)应用
一部分是原生界面和代码,而另外一部分是内嵌网页,比如微信、支付宝。内嵌了一个浏览器内核,由浏览器内核实现的。
2、安卓应用中的内嵌的展示网页内容的模块,我们称为WebView
3、需要开发人员修改代码。APP修改编译
修改编译
黄色高亮部分,意思是打开调试,支持自动化调试,生产环境都是关闭的。

appium自动化webView

切换到webView,类似于selenium中嵌套iframe的切换:
(1)appium中把所有的界面环境称为context
(2)native部分类似于iframe,native的context名字一般为NATIVE_APP
(3)webview部分的context则为WEBVIEW_XXXX[应用app package]
(4)我们怎么查看当前有哪些context呢?
driver.contexts
(5)而显示当前context的则是
driver.current_context

context = driver.current_context
(6)先要进入到native里面在进行元素操作。
此时已经从app中进入了百度链接的web页面,接下来的定位xpath都是在web页面上进行的,所以需要转换到web页面,使用语句
self.driver.switch_to.context(‘WEBVIEW_XXXX’)
如果是从App转到web的话()填"WEBVIEW_XXXX",
如果web转到App的话填"NATIVE_APP"
示例代码

    time.sleep(3)
    #获取所有可以自动化的context,运行结果:['NATIVE_APP','WEBVIEW_com.duodujisaunqi.jcy.wvtest']
    print(driver.contexts)
    #显示当前的context,运行结果[NATIVE_APP']
    print(driver.current_context)
    #从APP进入到web页面
    driver.switch_to.context("WEBVIEW_com.duodujisaunqi.jcy.wvtest")
    #d对元素进行操作
    driver.find_element_by_id("index-kw").send_keys("zhongguo")
    driver.find_element_by_id("index-bn").click()
    #从web页面到app
    driver.switch_to.context("NATIVE_APP")
    #回到app,才能操作app上的元素
    driver.find_element_by_id("com.duodujisaunqi.jcy.wvtest:id/navigation_dashboard").click()

如果运行报以下错:
当前手机浏览器的版本是64.0.3282与webview版本不匹配报错
前往 https://www.apkmirror.com/apk/google-inc/android-system-webview/ (需要科学上网)
选择最新版本,点击下载,进入下载页面,armeabi版本,点击进去,下载apk,下载之后记录路径,并且修改新的名字,我这里命名为com.google.android.webview_78.apk。
第一个版本
下载完成之后,使用adb安装到手机
在cmd命令下输入adb -r com.google.android.webview_78.apk

webView的内容不依赖所在app

开发人员打开调试开关之后,就可以开始测试。
(1)获取URL
(2)直接使用Chrome浏览器打开对应的网页,使用手机模式。

webView的内容依赖所在app

1、通过chrome的远程调试功能
2、打开Chrome浏览器,地址输入Chrome://inspect(需要科学上网)
Chrome://inspect
可以看到我的app的包名,下面就会显示我内嵌打开的地址,点击inspect,就会进入到查看元素的页面,就可以用之前的方法查看元素了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值