NO.3 appium-退出/启动

这应该是迈开腿的第三章内容,大致收集了一下关于app退出和启动的API,在开始之前,我们先确认一下一般情况下我们退出app的几种情况是啥样子。

我用来举例子的app,会记住上次登录成功的账号,每次打开app账号栏里都默认是‘tt’,像这样:

第一种情况:点击两次‘返回键’退出app

我先将帐户名改成‘123’:

 

 

点击两次‘返回键’,再次启动app:

 

 

用返回键退出,重新打开后,还是默认的‘tt’。

 

第二种情况:点击‘HOME’键,至于后台

 

我先将帐户名改成‘123’:

 

 

 

 

 

点击‘HOME’键至于后台,在启动app:

用‘HOME’键至于后台,帐户名还是‘123’

 

前话唠完,好嘞~菜来喽!!!

 

 

1.quit(self)

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’?

 

 

2.close_app(self)

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()'退出的比较彻底。

3.launch_app(self)

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再启动

 

菜齐了!
原文地址:https://www.cnblogs.com/dianxiao2/p/5531890.html