airtest/python常见报错

expected an indented block

Python中没有分号,用严格的缩进来表示上下级从属关系。导致excepted an indented block这个错误的原因一般有两个:
1.冒号后面是要写上一定的内容的(新手容易遗忘这一点)
2. 缩进不严格,导致少了或者多了一个空格

‘method’ object is not subscriptable

意思是方法不可以被使用下标
通俗一些,就是本来要使用 () 结果使用了 []

unexpected indent

1.函数或哪一行的缩进出了问题

airtest raise AdbError(stdout, stderr)

用户权限失败,使用的某些应用和项目中的有冲突
我出错的原因是:应用包名写成了com.android.permissioncontroller(安卓权限系统),这个是无法打开的

【日常更新】

### 如何通过 `chmod` 命令设置 Mac 下 ADB 文件的可执行权限 在 macOS 系统中,如果 Airtest 框架中的 ADB 工具未被赋予可执行权限,则可能会导致运行时出现 `Permission denied` 错误。为了确保 ADB 能够正常工作,可以通过以下方式为其设置可执行权限。 #### 步骤说明 进入指定目录并修改文件权限: ```bash cd /usr/local/lib/python3.7/site-packages/airtest/core/android/static/adb/mac sudo chmod 777 adb ``` 上述命令的作用如下: - **`cd`**:切换至目标路径 `/usr/local/lib/python3.7/site-packages/airtest/core/android/static/adb/mac`,这是存储 ADB 工具的位置[^1]。 - **`sudo chmod 777 adb`**:使用超级用户权限 (`sudo`) 将 ADB 文件的权限设置为最高级别 (即读取、写入和执行)[^2]。 完成此操作后,ADB 应该能够获得所需的可执行权限,从而避免后续运行过程中可能出现的 `Permission denied` 报错。 另外需要注意的是,在某些情况下也可以采用更为通用的方式授予可执行权限: ```bash chmod +x adb ``` 这种方式仅向文件添加执行权限而不改变其他属性,适用于大多数场景[^3]。 #### 验证更改效果 验证权限是否已成功更新的方法之一是再次尝试启动依赖于 ADB 的功能模块;另一种方法则是直接查看文件状态来确认其权限字段包含 'x' 字符表示具有执行权能。 --- ### 示例代码片段展示如何自动化处理这一过程 对于频繁部署不同环境下的开发者来说,编写简单的 Shell Script 来自动调整这些必要配置可能是有益处的: ```bash #!/bin/bash # Define the path to your site-packages directory where adb is located. AIRTEST_ADB_PATH="/usr/local/lib/python3.7/site-packages/airtest/core/android/static/adb/mac" if [ ! -d "$AIRTEST_ADB_PATH" ]; then echo "Error: Directory does not exist at $AIRTEST_ADB_PATH" exit 1 fi echo "Changing permissions of adb file..." cd "$AIRTEST_ADB_PATH" && sudo chmod +x adb || { echo "Failed to change permissions"; exit 1; } echo "Permissions updated successfully." ``` 以上脚本定义了一个变量用于保存 ADB 所在的具体位置,并检查是否存在对应的文件夹结构之后再实施必要的权限变更动作。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值