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

为了获取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 info: driver.version: AndroidDriver
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:216)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:168)
at io.appium.java_client.remote.AppiumProtocolHandShake.createSession(AppiumProtocolHandShake.java:161)
at io.appium.java_client.remote.AppiumProtocolHandShake.lambda$2(AppiumProtocolHandShake.java:88)
at io.appium.java_client.remote.AppiumProtocolHandShake$$Lambda$5/23545302.get(Unknown Source)
at java.util.Optional.orElseGet(Optional.java:267)
at io.appium.java_client.remote.AppiumProtocolHandShake.lambda$0(AppiumProtocolHandShake.java:83)
at io.appium.java_client.remote.AppiumProtocolHandShake$$Lambda$4/10853795.get(Unknown Source)
at java.util.Optional.orElseGet(Optional.java:267)
at io.appium.java_client.remote.AppiumProtocolHandShake.createSession(AppiumProtocolHandShake.java:78)
at io.appium.java_client.remote.AppiumCommandExecutor.doExecute(AppiumCommandExecutor.java:111)
at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:162)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:604)
at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:42)
at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1)
at io.appium.java_client.android.AndroidDriver.execute(AndroidDriver.java:1)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:244)
at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:131)
at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:144)
at io.appium.java_client.DefaultGenericMobileDriver.(DefaultGenericMobileDriver.java:38)
at io.appium.java_client.AppiumDriver.(AppiumDriver.java:88)
at io.appium.java_client.AppiumDriver.(AppiumDriver.java:112)
at io.appium.java_client.android.AndroidDriver.(AndroidDriver.java:73)

问题原因,appium server端升级到1.6.5 后,appium 安装目录下的子模块\appium\node_modules\appium-uiautomator2-driver  的文件夹uiautomator2下面没有 2个必要的安卓apk文件:

appium-uiautomator2-server-debug-androidTest.apk

appium-uiautomator2-server-v0.1.5.apk

这个时候在appium 安装目录下 执行命令:npm install appium-uiautomator2-driver  安装appium-uiautomator2-driver

安装完成后,npm\node_modules\appium\node_modules\appium-uiautomator2-driver\uiautomator2 目录下应该有2个apk文件

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

时间: 2024-10-24 17:10:12

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

appium 3-31603调试分析方法

Appium Log 清晰记录了所有的请求和结果 [Appium] Welcome to Appium v1.8.1 [Appium] Appium REST http interface listener started on 0.0.0.0:4723 #启动appium //启动appium <font color=#FF0000>启动</font> [HTTP] --> POST /wd/hub/session [HTTP] {"desiredCapabili

Appium 并发多进程基于 Pytest框架

前言: 之前通过重写unittest的初始化方法加入设备参数进行并发,实现了基于unittest的appium多设备并发,但是考虑到unittest的框架实在过于简陋,也不方便后期的Jenkins的持续集成,所以想换一个框架来使用. 那么通过调研,pyhon+pytest+allure 这套框架很不错,pytest是一个单元测试框架,他可以集成很多插件,包括出错重试,参数化,等.在此特别是基于他的allure插件,能够和Jenkins完美兼容,生成美观强大的测试报告. 改造思路: pytest框

javav语言启动Appium v1.12.0启动错误记录

启动类 public static AndroidDriver<AndroidElement> driver; /** * >aapt d badging GJDMALL-V2.2.0.3349-436-debug-99a5c6a.apk|findstr "package launchable-activity" * package: name='com.jingdong.th.app' versionCode='3346' versionName='2.2.0' p

appium实现的一个简单的测试用例

前几天在搭建appium的环境,苦于项目紧急,没有好好解决一个滑动问题,经过网络的资料搜索,现在将我学习的过程中踩过的坑记录下来. 问题:app安装实现,启动实现,但是没有滑动.原因是:滑动代码没有放在@test下,且休眠时间太短,后面的坐标给的太小.代码实现如下: package com.glen.demo; import io.appium.java_client.AppiumDriver;import io.appium.java_client.android.AndroidDriver;

Appium安装过程

Appium安装过程 先安装了 Node.js.在node的官网上下载的exe安装文件. 在node的command line中执行 npm install -g appium 来安装appium,报错,无效. 去appium.io官网,下载的appium的压缩包.其实这个压缩包中已经含有appium的可执行文件,无需再单独配置Node.js了. 解压之后出现appium.exe,双击运行提示需要安装.Net Framework,点击 “是” 便可以立即下载. 下载成功后,再次运行appium.

Appium 小白从零安装 ,Appium连接真机测试。

Appium安装过程 先安装了 Node.js.在node的官网上下载的exe安装文件. 在node的command line中执行 npm install -g appium 来安装appium,报错,无效. 去appium.io官网,下载的appium的压缩包.其实这个压缩包中已经含有appium的可执行文件,无需再单独配置Node.js了. 解压之后出现appium.exe,双击运行提示需要安装.Net Framework,点击 “是” 便可以立即下载. 下载成功后,再次运行appium.

Appium移动端自动化测试-安卓真机+模拟器启动

一.环境准备 appium-pythin-client版本(0.17),selenium版本(2.53.6)(版本需对应,否则执行脚本可能出错,我用的是这两个版本) macOs版本10.14.1(appium默认不支持该版本,需修改配置文件),参考:https://blog.csdn.net/yxys01/article/details/73551281 xcode版本10.1 下载SDK解压后,点击tools文件里的android文件,进行相关安卓版本下载 二.demo代码 测试文件代码: #

Appium环境搭建Java篇

1.下载.安装JDK&配置Java环境变量 JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 配置环境变量:  1.右键我的电脑--属性--高级--环境变量 2.新建系统变量JAVA_HOME 和CLASSPATH 变量名:JAVA_HOME 变量值:C:\Program Files\Java\jdk1.7.0 变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib\dt.jar;

Docker 镜像及Docker仓库配置 [四]

Docker 镜像及Docker仓库配置 [四] Docker 时间:2016年11月8日15:45:20 一.Docker 镜像介绍 Docker镜像构建分为两种,一种是手动构建,另一种是Dockerfile(自动构建) Docker镜像手动构建案例: 我们基于centos镜像进行构建,制作nginx镜像 [[email protected] ~]# docker run --name abcdocker -it centos[[email protected] /]# yum install