这应该是迈开腿的第三章内容,大致收集了一下关于app退出和启动的API,在开始之前,我们先确认一下一般情况下我们退出app的几种情况是啥样子。
我用来举例子的app,会记住上次登录成功的账号,每次打开app账号栏里都默认是‘tt’,像这样:
第一种情况:点击两次‘返回键’退出app
我先将帐户名改成‘123’:
点击两次‘返回键’,再次启动app:
用返回键退出,重新打开后,还是默认的‘tt’。
第二种情况:点击‘HOME’键,至于后台
我先将帐户名改成‘123’:
点击‘HOME’键至于后台,在启动app:
用‘HOME’键至于后台,帐户名还是‘123’
前话唠完,好嘞~菜来喽!!!
Quits the driver and closes every associated window.
:Usage:
driver.quit()
API的大概意思:退出驱动程序并关闭相关窗口
我们来试一下账号更改为‘123’,然后使用quit()是啥效果。
执行代码
driver.find_element_by_id("账号框").set_text('123')
driver.quit()
执行结果:app确实被退出,返回到了手机桌面,我们启动一下看看
退出后,重新打开app显示的账号是‘123’,难道quit类似‘HOME’?
Stop the running application, specified in the desired capabilities, on the device.
API的大概意思是:停止运行的应用程序,这个就不可爱了,都不给个例子。
执行代码
driver.find_element_by_id("账号框").set_text('123')
driver.close_app()
执行结果:app又确实退出了,回到了手机桌面,我们启动一下app看看结果。
账号是默认的‘tt’,看来'close_app()'退出的比较彻底。
Start on the device the application specified in the desired capabilities.
API的大概意思:启动app
乍一看挺合理,有关闭有启动,测试的时候偶尔也需要这样的操纵,我们挨个试试。
首先是quit(),然后启动
执行代码
driver.find_element_by_id("账号框").set_text('123')
driver.quit()
driver.launch_app()
执行结果:selenium.common.exceptions.WebDriverException: Message:
一脸懵逼了,报错了,还没给具体的错误信息,这是什么鬼?先放放,试试别的。
接下来是close_app(),然后启动
执行代码
driver.find_element_by_id("账号框").set_text('123')
driver.close_app()
driver.launch_app()
执行结果:一切事正常,再次启动了app
类似点击两次‘返回键’,然后重新打开。
额~再次看了一下API想来大概是这样的,‘quit()退出驱动并关闭页面’,执行quit()的时候appium驱动被退出,关闭的是appium,而app显示的页面被关闭(这个关闭是不在前台显示而已,没有真的关闭,重新启动app的时候可以看见,账号框输入的123还在),这相当于本次driver的生命周期结束。
‘close_app()是关闭应用’,只是一个普通的操作,app被关闭之后appium还在干活,所以我们可以用launch_app()再次唤起,此时driver得生命周期并没结束,我们唤起app后仍然可以继续执行其它操作。
quit()真正关闭的是appium。
close_app()关闭的只是app而已。
4.background_app(self, seconds)
Puts the application in the background on the device for a certain duration.
:Args:
- seconds - the duration for the application to remain in the background
这个API的大概意思:将app至于后台XX秒
有了它,就可以不用先close_app(),再launch_app()去唤起app了,一个API就搞定。
执行代码
driver.find_element_by_id("账号框").set_text('123')
driver.background_app(3)
执行结果:跟close_app()/launch _app(),一样的效果。
3秒后启动,默认的账号还是‘tt’,可见这个置于后台并不是类似‘HOME’的操作,而是类似关闭app再启动
菜齐了!