Appium版本升级,需要注意哪些点:使用UiAutomator2Options传递capabilities

news/2025/1/10 18:18:52/

mac上安装的是较新的Appium版本,在跑之前写的Android UI 自动化代码时报错:AttributeError: 'dict' object has no attribute 'to_capabilities'。

查了一下资料,这是因为较新的 Selenium 和 Appium 版本要求使用 Options 类来定义能力,而不是直接使用字典。

【解决方法】
需要将字典形式的 android_opts 转换为 Options 实例。修改方法:
1、引入正确的 Options 类
确保导入了 Appium 提供的 UiAutomator2Options 的 Options 类:

from appium.options.android import UiAutomator2Options

2、转换字典为 Options
在创建驱动的函数中,将 android_opts 转换为 UiAutomator2Options 实例:

def create_android_driver(android_opts=None):# 创建对象options = UiAutomator2Options()if custom_opts is not None:options.load_capabilities(android_opts)return webdriver.Remote(f'http://{APPIUM_HOST}:{APPIUM_PORT}', options=options)

这样不在报错,驱动创建成功。

【总结】

在新的 Appium 客户端库中(appium-python-client),caps 参数由 Options 类来管理,不在直接传递字典。如果使用的是较旧的方式,就可能出现这个错误,AttributeError: 'dict' object has no attribute 'to_capabilities'。 


http://www.ppmy.cn/news/1562034.html

相关文章

【hadoop学习遇见的小问题】clone克隆完之后网络连接不上问题解决

vi /etc/udev/rules.d/70-persistent-net.rules注释掉第一行 第二行的eth1 改为eth0 由上图也可以看到物理地址 记录下来在网卡中修改物理地址 vi /etc/sysconfig/network-scripts/ifcfg-eth0修改完之后 重启reboot 即可

线性表的接口定义及使用

定义接口 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace _001_线性表 {interface IListDS<T>//定义接口{int GetLength();void Clear();bool IsEmpty();void Add(T item);void Inser…

在离线环境中安装 `.rpm` 包的步骤

在一些环境中&#xff0c;可能无法直接通过网络安装软件包。特别是在没有互联网连接的情况下&#xff0c;我们仍然可以手动下载 .rpm 安装包并进行离线安装。本文将介绍如何在离线环境中安装多个 .rpm 包&#xff0c;确保软件的顺利安装和依赖关系的处理。 1. 将 .rpm 文件复制…

macOS 如何修改 PATH 环境变量 ?

对于希望从终端管理命令行工具和脚本的可访问性的用户来说&#xff0c;在 macOS 上编辑 PATH 环境变量是必不可少的。在最近的版本中&#xff0c;macOS 已经从使用 bash shell 作为默认 shell 转变为使用 zsh&#xff0c;因此了解如何在这两个 shell 中编辑 PATH 是很重要的。 …

RabbitMQ-SpringAMQP使用介绍

RabbitMQ 1. Spring AMQP1.1 引入依赖1.2 消息发送1.3 消息接收1.4 WorkQueue模型1.4.1 实例代码1.4.2 能者多劳1.4.3 总结 1.5交换机1.6 Fanout交换机&#xff08;广播&#xff09;1.7 Direct交换机&#xff08;订阅&#xff09;1.8 Topic交换机&#xff08;通配符订阅&#x…

webrtc之rtc::ArrayView<const uint8_t>

rtc::ArrayView<const uint8_t> 是 WebRTC&#xff08;或其他基于 rtc 命名空间的库&#xff09;中常见的一个类型&#xff0c;它通常用于表示一块 只读的内存区域&#xff0c;该内存区域由一系列 uint8_t 类型&#xff08;无符号 8 位整数&#xff09;元素组成。 1. rt…

标准应用 | 2025年网络安全服务成本度量实施参考

01 网络安全服务成本度量依据相关新变化 为了解决我国网络安全服务产业发展中面临的服务供需两方对于服务成本组成认知偏差较大、网络安全服务成本度量缺乏依据的问题&#xff0c;中国网络安全产业联盟&#xff08;CCIA&#xff09;组织北京赛西科技发展有限责任公司、北京安…

spring boot启动源码分析(三)之Environment准备

上一篇《spring-boot启动源码分析&#xff08;二&#xff09;之SpringApplicationRunListener》 环境介绍&#xff1a; spring boot版本&#xff1a;2.7.18 主要starter:spring-boot-starter-web 本篇开始讲启动过程中Environment环境准备&#xff0c;Environment是管理所有…