学习移动测试appium基本操作遇到的问题。
很简单的一个过程:就是通过代码控制了模拟器,进入手机设置页面,点击了“显示”,然后关闭当前APP,停止driver。
driver_01.terminate_app('com.android.settings')应该是这条有问题,报错里提到:
UnknownError: An unknown server-side error occurred while processing the command. Original error: 'com.android.settings' is still running after 500ms timeout
不明白这个报错什么意思,怎么解决。
因为close_app()弃用了,受高人指点后使用了terminate_app,之前运行都没问题,这次不知道为什么报错了,o(╥﹏╥)o
感谢解答!
下面是写的代码:
from appium import webdriver
from appium.webdriver.common.appiumby import By
import time
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '7.1.2'
desired_caps['deviceName'] = '127.0.0.1:62001'
desired_caps['appPackage'] = 'com.android.settings'
desired_caps['appActivity'] = '.Settings'
driver_01 = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_capabilities =desired_caps )
time.sleep(3)
driver_01.find_element(By.XPATH, "//*[@text = '显示']").click() # 点击设置页面里的显示。
time.sleep(3)
driver_01.terminate_app('com.android.settings')
time.sleep(3)
driver_01.quit()
报错如下:
Traceback (most recent call last):
File "E:\env\Appium\Lib\site-packages\appium\webdriver\extensions\applications.py", line 196, in terminate_app
return self.assert_extension_exists(ext_name).execute_script(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\env\Appium\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 500, in execute_script
return self.execute(command, {"script": script, "args": converted_args})["value"]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\env\Appium\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 440, in execute
self.error_handler.check_response(response)
File "E:\env\Appium\Lib\site-packages\appium\webdriver\errorhandler.py", line 122, in check_response
raise exception_class(msg=message, stacktrace=format_stacktrace(stacktrace))
selenium.common.exceptions.UnknownMethodException: Message: Unknown mobile command "terminateApp". Only shell,execEmuConsoleCommand,dragGesture,flingGesture,doubleClickGesture,longClickGesture,pinchCloseGesture,pinchOpenGesture,swipeGesture,scrollGesture,scrollBackTo,scroll,viewportScreenshot,viewportRect,deepLink,startLogsBroadcast,stopLogsBroadcast,acceptAlert,dismissAlert,batteryInfo,deviceInfo,getDeviceTime,changePermissions,getPermissions,performEditorAction,startScreenStreaming,stopScreenStreaming,getNotifications,listSms,type,sensorSet,deleteFile,clearApp,startActivity,startService,stopService,broadcast,getContexts,installMultipleApks,unlock commands are supported.
Stacktrace:
UnknownCommandError: Unknown mobile command "terminateApp". Only shell,execEmuConsoleCommand,dragGesture,flingGesture,doubleClickGesture,longClickGesture,pinchCloseGesture,pinchOpenGesture,swipeGesture,scrollGesture,scrollBackTo,scroll,viewportScreenshot,viewportRect,deepLink,startLogsBroadcast,stopLogsBroadcast,acceptAlert,dismissAlert,batteryInfo,deviceInfo,getDeviceTime,changePermissions,getPermissions,performEditorAction,startScreenStreaming,stopScreenStreaming,getNotifications,listSms,type,sensorSet,deleteFile,clearApp,startActivity,startService,stopService,broadcast,getContexts,installMultipleApks,unlock commands are supported.
at AndroidUiautomator2Driver.executeMobile (C:\Users\47089\AppData\Local\Programs\Appium Server GUI\resources\app\node_modules\appium\node_modules\appium-uiautomator2-driver\lib\commands\general.js:175:11)
at AndroidUiautomator2Driver.execute (C:\Users\47089\AppData\Local\Programs\Appium Server GUI\resources\app\node_modules\appium\node_modules\appium-android-driver\lib\commands\execute.js:11:23)
at commandExecutor (C:\Users\47089\AppData\Local\Programs\Appium Server GUI\resources\app\node_modules\appium\node_modules\appium-base-driver\lib\basedriver\driver.js:335:9)
at C:\Users\47089\AppData\Local\Programs\Appium Server GUI\resources\app\node_modules\appium\node_modules\async-lock\lib\index.js:146:12
at AsyncLock._promiseTry (C:\Users\47089\AppData\Local\Programs\Appium Server GUI\resources\app\node_modules\appium\node_modules\async-lock\lib\index.js:280:31)
at exec (C:\Users\47089\AppData\Local\Programs\Appium Server GUI\resources\app\node_modules\appium\node_modules\async-lock\lib\index.js:145:9)
at AsyncLock.acquire (C:\Users\47089\AppData\Local\Programs\Appium Server GUI\resources\app\node_modules\appium\node_modules\async-lock\lib\index.js:162:3)
at AndroidUiautomator2Driver.executeCommand (C:\Users\47089\AppData\Local\Programs\Appium Server GUI\resources\app\node_modules\appium\node_modules\appium-base-driver\lib\basedriver\driver.js:348:39)
at AppiumDriver.executeCommand (C:\Users\47089\AppData\Local\Programs\Appium Server GUI\resources\app\node_modules\appium\lib\appium.js:563:36)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
at asyncHandler (C:\Users\47089\AppData\Local\Programs\Appium Server GUI\resources\app\node_modules\appium\node_modules\appium-base-driver\lib\protocol\protocol.js:297:21)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "E:\python项目\Appium\test del.py", line 18, in <module>
driver_01.terminate_app('com.android.settings')
File "E:\env\Appium\Lib\site-packages\appium\webdriver\extensions\applications.py", line 209, in terminate_app
return self.mark_extension_absence(ext_name).execute(Command.TERMINATE_APP, data)['value']
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\env\Appium\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 440, in execute
self.error_handler.check_response(response)
File "E:\env\Appium\Lib\site-packages\appium\webdriver\errorhandler.py", line 122, in check_response
raise exception_class(msg=message, stacktrace=format_stacktrace(stacktrace))
selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: 'com.android.settings' is still running after 500ms timeout
Stacktrace:
UnknownError: An unknown server-side error occurred while processing the command. Original error: 'com.android.settings' is still running after 500ms timeout
at getResponseForW3CError (C:\Users\47089\AppData\Local\Programs\Appium Server GUI\resources\app\node_modules\appium\node_modules\appium-base-driver\lib\protocol\errors.js:804:9)
at asyncHandler (C:\Users\47089\AppData\Local\Programs\Appium Server GUI\resources\app\node_modules\appium\node_modules\appium-base-driver\lib\protocol\protocol.js:380:37)