关于Hybrid的3个问题。windows+python3+appium+android6.0

来源:7-4 Hybrid App自动化脚本的实现

慕码人8321980

2017-06-01

第一个问题:

我的apk属于混合型,原生的+H5。

写脚本的时候,hybrid比native多一行:desired_caps['automationName'] = 'Selendroid'。这句话如果在unittest框架中,会对native产生什么影响吗?还是写了也无妨,程序自己判断?native不是默认是appium么。(我现在还未使用框架)

第二个问题:

在appium-server的android setting中设置两个位置:一个是application path,一个是automation name。设置后,会将原有安装的app卸载,并在pc路径下的apk进行重签名,然后再次全新安装到手机上。这个过程,等于卸载app然后全新安装。我要写的一个功能是在登录后进行操作的,但是每次运行脚本都全新安装,除非我加上登录的脚本,否则就报错,请问,这块有什么解决办法?

第三个问题:

按照教学中以下代码:

print(driver.contexts)
#driver.switch_to.context('WEBVIEW_0')
print(driver.current_context)
sleep(5)

配置好appium后,显示结果为

['NATIVE_APP']

NATIVE_APP

但是和开发确认,该页面确实为H5页面,同时给了我一个url就是这个H5的。使用uiautomator也显示是webview类型。所以想问下,为什么未打印显示出webview?我这个页面到底是按照H5处理,还是按照native处理?

感谢您的回答!

写回答

1回答

毫末

2017-06-02

第一个问题,测试混合型的需要使用混合型的驱动selendroid,课程里解释过。
第二个,混合型需要进行重新签名,卸载安装,是因为之前装的非签名包。登录问题,只能重装后,写脚本完成登录。
第三个问题,我也无法解释了。官网教程就是这样解释的。具体原因,我也不清楚。只能google或者百度了

0
2
毫末
回复
慕码人8321980
1. android5,6可以使用uiautomator驱动完成webview的测试。好像只能使用xpath来定位,没有selendroid下灵活。在android5上试过,使用selendroid是可以的。 2. no reset解决的是每次测试时,如果已经安装了相同测试包,不需要卸载。如果包有更新,同样会卸载重装。3. 你说的可能是对的。这个我还真的没研究过。android的版本太多,小的影响因素也非常多,只能具体问题具体分析。
2017-06-05
共2条回复

安卓自动化测试入门 Python篇

Android测试工程师必备技能,性能 、压力、 接口、 持续集成、自动化脚本

1110 学习 · 336 问题

查看课程