Appium+Python 报错“Requires permission android.permission.WRITE_SECURE_SETTINGS”

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Appium+Python 报错“Requires permission android.permission.WRITE_SECURE_SETTINGS”相关的知识,希望对你有一定的参考价值。

参考技术A 新申请的测试机到啦,申请机型是小米9。打开开发者模式、USB调试后,连接电脑,准备跑一下自动化脚本。但是在pycharm中点击run后,出现报错,报错code:255,提示“Requires permission android.permission.WRITE_SECURE_SETTINGS”,报错详情如下:

从上图可知,提示打开android 安全设置

解决方案:打开android安全设置

步骤如下(需先插入SIM卡):

点击小米手机 设置->更多设置->开发者选项->点击“USB调试(安全设置)

打开小米手机USB调试(安全设置)功能后,运行脚本成功安装Appium Settings和Unlock,并启动app

解决报错:在Python中使用property装饰器时,出现错误:TypeError: descriptor ‘setter‘ requires a ‘property‘ object but(代码片

错误信息

       •我们在使用property装饰器时,可能因为装饰器名称书写错误导致下述错误:

TypeError: descriptor 'setter' requires a 'property' object but received a 'function'

问题分析

       •出现此错误的原因是我们将所有的装饰器名称都写为了property,而不是我们的类中相同的方法名:

问题代码

class AgeDemo(object):

    def __init__(self, age):
        self.age = age

    @property
    def age_test(self):
        return self.age

    @property.setter   # 出现问题的代码行
    def age_test(self, age):
        if not isinstance(age, int):
            raise TypeError('TypeError')
        self.age = age

解决报错

       •将图中出现报错的装饰器名称改为我们类中设置的相同名称,即可解决此报错!!!
代码如下:

class AgeDemo(object):

    def __init__(self, age):
        self.age = age

    @property
    def age_test(self):
        return self.age

    @age_test.setter # 修改的代码行
    def age_test(self, age):
        if not isinstance(age, int):
            raise TypeError('TypeError')
        self.age = age

参考文档

       •其它关于python装饰器的问题可参考官方文档:python装饰器官方文档!!!

以上是关于Appium+Python 报错“Requires permission android.permission.WRITE_SECURE_SETTINGS”的主要内容,如果未能解决你的问题,请参考以下文章

Appium+python自动化54-appium-doctor报错已解决(SyntaxError: Unexpected token ...)

已解决Permission denial: writing to settings requires:android.permission.WRITE_SECURE_SETTINGS

appium---from appium import webdriver报错提示“Unresolved import webdriver”

Python 学习记录Pycharm导入第三方包报错问题……ValueError: check_hostname requires server_hostname

安装setuptools模块报错​Compression requires the (missing) zlib module

Appium python