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再啟動

 

菜齊了!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM