Android WebView——web页面

android纯 web页面测试

1.

前端页面主要有以下3种类型:
原生应用
混合应用
web应用
 
比如:m.baidu.com 百度m站,一般每个app都会有一个m站,这个页面和浏览器上打开的页面非常类似 
M站和web都是一样的 都是用的selenium那一套去定位
原生 native app:速度快,性能好;缺点:依赖android,更新比较慢,很难适应敏捷开发,还需要更新app;对于ios审核时长长;开发成本最高
hybrid app:混合应用;不依赖于原生应用的上线,开发成本稍微低
web app:开发成本最低 
 
 2.环境准备
 
 查找浏览器版本号,模拟器:网易MUMU
adb shell pm list package|grep chrome
adb shell pm dump com.android.chrome|grep version
des_caps中这时候就不需要apppackage而需要browserName
from time import sleep

from appium import webdriver


class TestDemo1():
    def setup(self):
        des_caps = {
            'platformName': 'android',
            'platformVersion': '6.0',
            'browserName': 'Browser',
            'noReset': True,
            'deviceName': 'emulator-5554'
        }
        self.driver = webdriver.Remote('http://localhost:4723/wd/hub', des_caps)
        self.driver.implicitly_wait(5)

    def teardown(self):
        self.driver.quit()

    def test_browser(self):
        sleep(3)
        self.driver.get('http://m.baidu.com')
        sleep(3) 
 问题来了,我们下载的driver应该放在哪里,运行脚本查看appium日志可以看到,appium会去查找默认路径, 把路径放到这里,就不用指定路径了
我们也可以在des_caps中指定路径:
 3.定位元素
嵌入在浏览器中的页面如何定位元素呢?
1)利用 chrome://inspect,在测试的webview的时候一定要让开发把开关打开
不然页面无法映射到chrome://inspect
2)另一种方式打开h5页面:adb logcat|grep http,也可以这样获取h5的地址 ,但是在不同手机上渲染的结果是不一样的
因此这样测试也不是合理的,最优的解决方案是映射到inspect上 
posted @ 2020-05-06 09:32  zhaikunkun  阅读(287)  评论(0)    收藏  举报