這應該是邁開腿的第三章內容,大致收集了一下關於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再啟動
菜齊了!