appium +uiautomator2 遇到 deviceName can't be blank 提示的解决

在使用Appium+UIAutomator2进行自动化测试时,遇到deviceName不能为空的错误。升级Selenium到3.4.0和Appium到最新版,添加特定代码后,问题依然存在。错误原因是Appium Server 1.6.5缺少两个必要的apk文件。通过执行`npm install appium-uiautomator2-driver`命令安装缺少的模块,问题得到解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为了获取android toast ,需要升级selenium 到 3.4.0 和appium 5.0.0-BETA9 到最新版本,并在启动代码前面追加一行代码:

capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, AutomationName.ANDROID_UIAUTOMATOR2);

获取toast 需要在android api  level 在20 及20 以上才能正常工作。

添加必要的语句后,执行自动化代码,报错: The desiredCapabilities object was not valid for the following reason(s): deviceName can't be blank

org.openqa.selenium.SessionNotCreatedException: A new session could not be created. Details: The desiredCapabilities object was not valid for the following reason(s): deviceName can't be blank, (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 0 milliseconds
Build info: version: '3.3.0', revision: 'b526bd5b41', time: '2017-03-07 19:26:04 +0000'
System info: host: 'windows7', ip: '192.168.59.1', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.8.0_45'
Driver i

### Appium 使用教程 #### 什么是 AppiumAppium 是一个开源的移动端自动化测试框架,支持对原生、混合以及移动 Web 应用进行测试[^1]。它能够用于 iOS 和 Android 平台的应用程序测试,并且具有跨平台特性,可以在 macOS、Windows 和 Linux 上运行。 --- #### Appium 的安装与配置指南 ##### 1. **环境准备** 在开始之前,请确保已安装以下工具: - Java Development Kit (JDK) - Node.js - Python 或其他编程语言(可选) - Android SDK 工具包 对于 Android 开发者来说,在完成 Android Studio 安装后,可以通过 `Preference -> Appearance & Behavior -> System Settings -> Android SDK` 配置所需的 Android 版本。默认情况下会下载最新的 API 级别(如 API 33 对应 Android 12),但如果需要特定版本,则需手动选择并安装相应组件[^4]。 ##### 2. **安装 Appium Server** 通过 npm 命令来全局安装 Appium Server: ```bash npm install -g appium ``` 启动服务端命令如下所示: ```bash appium ``` 这一步骤将初始化服务器监听客户端请求。 ##### 3. **解决常见错误——Invalid Argument Exception** 当尝试连接至新版 Appium Server 运行时可能会遇到异常提示:“InvalidArgumentException: 'automationName' can't be blank”。此问题是由于未指定 automation name 参数引起,在较新的版本中推荐使用 UiAutomator2 替代旧版驱动器作为解决方案之一[^2]: 执行插件管理操作前确认当前可用驱动列表状态: ```bash appium driver list ``` 接着按照指示添加必要依赖项到本地环境中去: ```bash appium driver install uiautomator2 ``` 以上步骤有助于修复因缺失关键属性而导致的功能障碍情况发生。 ##### 4. **编写第一个脚本** 下面展示了一个简单的 Python 脚本来演示如何利用 Desired Capabilities 启动模拟设备上的应用程序实例。 ```python from appium import webdriver desired_caps = { "platformName": "Android", "deviceName": "emulator-5554", "appPackage": "com.example.app", "appActivity": ".MainActivity" } driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) # 执行某些交互动作... driver.quit() ``` 此处定义了几个重要参数比如目标操作系统名称(platformName),虚拟机或者真机标识(deviceName)等等。这些信息共同构成了描述能力(desired capabilities),它们告诉 server 如何设置 session 条件以便正确加载待测 APP 文件。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值