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.环境准备
github地址:
查找浏览器版本号,模拟器:网易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上
浙公网安备 33010602011771号