承接Appium学习笔记04的打开APP
在代码中增加driver.close_app() 和driver.quit()
来获关闭当前app、关闭此次驱动连接
driver.close_app() #关闭当前app
driver.quit() #关闭驱动连接
测试:
1.打开手机设置,输出当前APP包名为设置,返回如下:
com.android.settings
2.关闭手机设置,输出当前APP包名为桌面,返回如下:
com.meizu.flyme.launcher
3.关闭此次驱动连接,输出当前APP包名,报错,因为连接断开,指令无法传递过去,报错如下:
Traceback (most recent call last):
File "C:/Users/yifliu/PycharmProjects/Hellow-Appium/open-app.py", line 20, in <module>
print(driver.current_package)#打印获取到的 当前界面的程序包名
File "C:\Users\yifliu\PycharmProjects\Hellow-Appium\venv\lib\site-packages\appium\webdriver\extensions\android\common.py", line 54, in current_package
return self.execute(Command.GET_CURRENT_PACKAGE)['value']
File "C:\Users\yifliu\PycharmProjects\Hellow-Appium\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Users\yifliu\PycharmProjects\Hellow-Appium\venv\lib\site-packages\appium\webdriver\errorhandler.py", line 29, in check_response
raise wde
File "C:\Users\yifliu\PycharmProjects\Hellow-Appium\venv\lib\site-packages\appium\webdriver\errorhandler.py", line 24, in check_response
super(MobileErrorHandler, self).check_response(response)
File "C:\Users\yifliu\PycharmProjects\Hellow-Appium\venv\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.InvalidSessionIdException: Message: A session is either terminated or not started
效果图:
代码:
#导入库
from appium import webdriver
import time
desired_caps = dict()#创建字典
desired_caps['platformName'] = 'Android'#添加字典字段:手机平台(Android、iOS)
desired_caps['platformVersion'] = '5.1'#添加字典字段:系统版本号(可从手机的设置里面查看)
desired_caps['deviceName'] = 'myphone'#添加字典字段:设备名称(随便写即可)
desired_caps['appPackage'] = 'com.android.settings'#添加字典字段:要打开的app包名
desired_caps['appActivity'] = 'com.android.settings.Settings'#添加字典字段:APP的界面名
driver = webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)#调用方法,其中'http://localhost:4723/wd/hub'即为appium服务器地址
time.sleep(5)#等待5秒
print(driver.current_package)#打印获取到的 当前界面的程序包名
driver.close_app()#关闭当前APP
print(driver.current_package)#打印获取到的 当前界面的程序包名
driver.quit()#退出此次驱动连接
print(driver.current_package)#打印获取到的 当前界面的程序包名