记录两个使用OPPO手机做自动化测试遇到的问题
问题1,运行的时候报错:
Message: An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error:
'Command 'D:\\android-sdk-windows\\platform-tools\\adb.exe -P 5037 -s b3b50f25 shell ime enable io.appium.settings/.UnicodeIME' exited with code 137'; Stderr: ''; C
ode: '137'
解决办法:
注释掉连接手机中的这两项:
'unicodeKeyboard': True,
'resetKeyBoard': True
问题2:
ERROR root:base_driver.py:61>> Message: An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command 'D:\\android-sdk-windows\\platform-tools\\adb.exe -P 5037 -s b3b50f25 shell pm install -r /data/local/tmp/appium_cache/0cc1725a60a05dbb5d0d09256f2fc6ece7e3b10f.apk' exited with code 1'; Stderr: 'Failure [-99]'; Code: '1'
这个问题应该是adb安装appium服务的时候报错了,重新卸载安装就可以:
# 卸载APP,后面的路径是报错的提示中的路径
adb uninstall /data/local/tmp/appium_cache/0cc1725a60a05dbb5d0d09256f2fc6ece7e3b10f.apk
然后重新安装,把错报的那句指令执行一下,提示成功即可,要注意OPPO手机安装的时候可能提示输入密码,手动输入一下:
adb -P 5037 -s b3b50f25 shell pm install -r /data/local/tmp/appium_cache/0cc1725a60a05dbb5d0d09256f2fc6ece7e3b10f.apk
问题3:
还有一个问题始终没有解决掉,也是OPPO手机,find toast的时候总是找不到提示信息,使用华为手机就好好的,换OPPO就总找不到,toast显示的时间挺长的,肯定不是一闪而过不容易获取到的那种,如果有人能解决,就感激不尽了。
下面是我的find_toast()方法:
def find_toast(self, message, screen_name="", is_screenshot=True, timeout=10.0, time=0.5):
"""
获取toast的内容并返回
:param message: 预期要获取到的toast部分提示信息
:param screen_name:保存截图的名字
:param is_screenshot:是否截图
:param timeout:WebDriverWait寻找toast的超时时间
:param time:每隔多长时间寻找toast一次
:return: 返回找到的toast提示信息
"""
message = "text," + message
try:
element = self.find_element((By.XPATH, message), timeout, time)
if is_screenshot:
self.screenshot(screen_name)
except Exception:
logger.error("没有找到这句提示信息:%s" % message[5:])
return False
return element.text