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 提示的解决的更多相关文章
- appium windows 命令行中运行以及targetSdkVersionFromManifest failed的解决
启动appium服务,可以通过appium.exe可执行文件启动,也可以通过命令行启动.appium.exe启动需要通过安装可执行文件,命令行启动需要通过npm安装appium.可执行文件启动方式如下 ...
- Appium在手机浏览器使用滑屏Not yet implemented解决办法。
在手机浏览器使用swipe.scroll等手机特有行为时,因为默认context是WEBVIEW,所有一定要切换回NATIVE_APP才可以使用. python: driver.switch_to.c ...
- 解决 appium 当中 uiautomator2 无法启动的问题
在启动 appium 程序中,有时候会出现 uiautomator2 服务无法启动的错误,appium 的日志截图如下: image.png 错误信息: ActivityManager: Unable ...
- appium 测试过程中遇到的几个问题 ---持续更新!
一. appium自带的Chromedriver版本和设备Android System Webview版本不一致的问题 报错信息: io.appium.java_client.NoSuchContex ...
- appium自动化测试(四)
一. 获取webview的html页面 方法一: 1. 获取webview中对应的html页面 谷歌浏览器中输入地址:chrome://inspect(第一次使用要FQ) 前提:手机开启USB调试模式 ...
- Appium 并发多进程基于 Pytest框架
前言: 之前通过重写unittest的初始化方法加入设备参数进行并发,实现了基于unittest的appium多设备并发,但是考虑到unittest的框架实在过于简陋,也不方便后期的Jenkins的持 ...
- appium连接Android真机,并调试
Android真机:华为pad2 Android和Windows连接同一个局域网 连接USB Android机设置: 打开USB调试 cmd>adb devices,显示Android序列号 , ...
- Python+Appium自动化测试(2)-appium连接真机启动app
app自动化测试的第一步,是启动被测app.appium环境搭建好后,我们就可以连接真机启动app了.环境为windows,Appium1.18.0,Android手机,被测app为今日头条app,让 ...
- appium日志
2020-10-02 00:44:10:672 [Appium] Welcome to Appium v1.16.0 2020-10-02 00:44:10:673 [Appium] Non-defa ...
随机推荐
- Compiling LIBFFM On OSX 10.9
原文:http://blog.josephmisiti.com/compiling-libffm-on-osx-10.9/ I recently tried to compile LIBFFM (Fi ...
- 软件project(一)——宏观总结
曾经看视频,看过去就忘.不想再这样子下去了,所以总结了好久.想让自己忘不了.这个过程花费时间有点长,可是假设让自己忘不了.一切都值了. 以下先来一张导图来总结一下<软件project>这门 ...
- [Backbone] Parse not formatted JSON code
The good Dr. recently had another team implement the server and they slightly messed up the format o ...
- BZOJ 3172 Tjoi2013 单词 后缀数组
题目大意:给定一个n个单词的文章,求每一个单词在文章中的出现次数 文章长度<=10^6(不是单词长度<=10^6,不然读入直接超时) 首先将全部单词用空格连接成一个字符串.记录每一个单词的 ...
- 免费的HTML商业模板-Hidayah
在线演示 在线演示 本地下载 在这款模板中,你可以随意缩放大小,适合笔记本.平板电脑或手机,非常方便阅读.
- rmdir 命令(转)
原文:http://www.cnblogs.com/peida/archive/2012/10/27/2742076.html rmdir命令.rmdir是常用的命令,该命令的功能是删除空目录,一个目 ...
- 好记性不如烂笔头77-多线程-Thread子类的线程对象是不同的
Thread子类的线程对象是不同的. 比方: EasySelfThread thread = new EasySelfThread(); //同一个线程对象 Thread t1 = new Threa ...
- 简单的Stack
自己实现的简单的Stack.没有查空满.用于算法考试 #include<iostream> using namespace std; const int MAX = 100; struct ...
- Tomcat 设置URI默认字符集为UTF-8
新配置一个Spring的MVC项目.发现对Get请求的中文參数出现了乱码: 查看了SpingMVC中关于编码的配置(在web.xml中).例如以下 <filter> <filter- ...
- 小程序四:视图之WXSS
WXSS(WeiXin Style Sheets)是MINA设计的一套样式语言,用于描述WXML的组件样式. WXSS用来决定WXML的组件应该怎么显示. 为了适应广大的前端开发者,我们的WXSS具有 ...