java unsupport_Java-如何使用Android自动化修复“ UnsupportedC...
我正在尝试运行命令以在模拟器上滚动屏幕.我尝试了Action类中的一组action命令,但是它们不一致.我最终偶然发现了下面的代码.
是否需要导入或包含某些内容才能使这些操作正常运行?我的另一个困惑是,此代码在使用Espresso驱动程序时有效,但在UiAutomator2驱动程序下运行时却产生此错误消息.我尝试导入Action类,但这不能解决问题.同样,UiAutomator2驱动程序上是否需要导入或专门用于这些命令的内容?
此代码在使用Espresso驱动程序时有效,但在UiAutomator2驱动程序下运行时会产生此错误消息.我尝试导入Action类,但这不能解决问题.
WebElement element1 = wait.until(ExpectedConditions.visibilityOfElementLocated(originLocator));
WebElement element2 = wait.until(ExpectedConditions.visibilityOfElementLocated(destinationLocator));
int startY = element1.getLocation().getY() + (element1.getSize().getHeight() / 2);
int startX = element1.getLocation().getX() + (element1.getSize().getWidth() / 2);
int endX = element2.getLocation().getX() + (element2.getSize().getWidth() / 2);
int endY = element2.getLocation().getY() + (element2.getSize().getHeight() / 2);
PointerInput input = new PointerInput(PointerInput.Kind.TOUCH, "input");
Sequence swipeTo = new Sequence(input, 0);
swipeTo.addAction(input.createPointerMove(Duration.ZERO, PointerInput.Origin.viewport(), startX, startY));
swipeTo.addAction(input.createPointerDown(PointerInput.MouseButton.LEFT.asArg()));
swipeTo.addAction(input.createPointerMove(Duration.ofMillis(1000), PointerInput.Origin.viewport(), endX, endY));
swipeTo.addAction(input.createPointerUp(PointerInput.MouseButton.LEFT.asArg()));
driver.perform(Arrays.asList(swipeTo));
这应该在模拟器上滚动移动应用程序的可见页面,但是当前在使用UiAutomator2驱动程序运行时会导致以下错误(org.openqa.selenium.UnsupportedCommandException:操作).
编辑:从下面的注释中应用代码后,我得到以下代码,该代码始终与UiAutomator2驱动程序兼容,但与Espresso驱动程序不兼容(它在屏幕上定位了错误的空间,似乎点击了一个元素而不是触摸并按住) .
WebElement element1 = wait.until(ExpectedConditions.visibilityOfElementLocated(originLocator));
WebElement element2 = wait.until(ExpectedConditions.visibilityOfElementLocated(destinationLocator));
int startY = element1.getLocation().getY() + (element1.getSize().getHeight() / 2);
int startX = element1.getLocation().getX() + (element1.getSize().getWidth() / 2);
int endX = element2.getLocation().getX() + (element2.getSize().getWidth() / 2);
int endY = element2.getLocation().getY() + (element2.getSize().getHeight() / 2);
Dimension dim=driver.manage().window().getSize();
int height=(int) dim.getHeight();
int width=(int) dim.getWidth();
int x= width/2;
new TouchAction(driver)
.press(PointOption.point(x,startY))
.waitAction(WaitOptions.waitOptions(Duration.ofMillis(2000)))
.moveTo(PointOption.point(x,endY))
.release()
.perform();
所以我确实为每个驱动程序提供了一个工作版本.有谁知道为什么这些行为取决于所使用的驱动程序?
java unsupport_Java-如何使用Android自动化修复“ UnsupportedC...相关推荐
- 【Android 修炼手册】常用技术篇 -- Android 热修复解析
这是[Android 修炼手册]第 8 篇文章,如果还没有看过前面系列文章,欢迎点击 这里 查看- 预备知识 了解 android 基本开发 了解 ClassLoader 相关知识 看完本文可以达到什 ...
- Android自动化的一般方法
1 背景 https://mp.weixin.qq.com/s/B7o3JSkYI_9c4RivatsZKQ Android自动化包含自动化测试和第三方App的自动化运行,这里的自动化测试主要指的是纯 ...
- [转] android自动化之MonkeyRunner测试环境配置(一)
Android自动化测试之MonkeyRunner 一.Android自动化测试之环境搭建 1.1 Android-sdk介绍 ¢ SDK(Software development kit)软件开发 ...
- Android热修复之 阿里开源的热补丁
1.概述 上一期讲到Android热修复之 - 收集崩溃信息上传至服务器,我们获取到用户手中上线的崩溃信息上传到服务器后该怎么办?如果直接发布版本要用户去下载肯定不乐意.这一期我们来看一下怎么去打 ...
- 【Android 热修复】热修复原理 ( 多 Dex 打包机制 | 多 Dex 支持 | Dex 分包设置 | 开发和产品风格设置 | 源码资源 )
文章目录 一.Dex 打包设置 1.多 Dex 支持 2.Dex 分包设置 3.开发和产品风格设置 ( 非必须 ) 二.完整 build.gradle 配置 1.build.gradle 配置 2.d ...
- 【Android 热修复】热修复原理 ( 合并两个 Element[] dexElements | 自定义 Application 加载 Dex 设置 | 源码资源 )
文章目录 一.合并两个 Element[] dexElements 二. 完整修复包加载工具类 三. 源码资源 一.合并两个 Element[] dexElements 在 [Android 热修复] ...
- 【Android 热修复】热修复原理 ( 修复包 Dex 文件准备 | Dex 优化为 Odex | Dex 文件拷贝 | 源码资源 )
文章目录 一.修复包 Dex 文件准备 二.Odex 优化 三.Dex 文件拷贝 四. 源码资源 一.修复包 Dex 文件准备 异常代码 : 故意写一个异常代码 , 并执行该代码 , 肯定会崩溃 ; ...
- 深入解析阿里Android热修复技术原理
前言:本文框架 什么是热修复? 热修复框架分类 技术原理及特点 Tinker框架解析 各框架对比图 总结 通过阅读本文,你会对热修复技术有更深的认知,本文会列出各类框架的优缺点以及技术原理,文章末尾简 ...
- Android热修复技术原理详解(最新最全版本)
本文框架 什么是热修复? 热修复框架分类 技术原理及特点 Tinker框架解析 各框架对比图 总结 通过阅读本文,你会对热修复技术有更深的认知,本文会列出各类框架的优缺点以及技术原理,文章末尾简单 ...
最新文章
- SQL GROUP BY 语句
- 连岳读书|这是不让人害怕的数学,课堂上学不到的数学!
- sqlserver在linux数据备份,SQLServer数据库之sqlserver for linux自动备份数据库脚本
- OK6410裸机开发之LED灯
- Linux中shell的介绍
- php 上万关键字匹配,JavaScript 上万关键字瞬间匹配实现代码
- leetcode43. 字符串相乘
- oracle指令df,​ oracle 常用命令大汇总
- mysql join图解_MySQL中Join算法实现原理分析[多图]
- Maximum Subarray leetcode java
- 三星 android 截屏,三星S7怎么截屏 3种三星S7截图方法
- sql server 监视_使用动态管理对象监视SQL Server –请求
- php log 行号 debug_backtrace,PHP 基于debug_backtrace的流程日志与日志分析
- php !$rs-gt;bof and !$rs-gt;eof,关于rs.bof rs.eof的一些解释,请大家帮我完善一下,谢谢...
- CDN的基本概念和产生背景
- 台式机dp接口_常见视频接口图示及说明
- 【Unity2D】实现人物死亡动画+代码
- 1一10到时的英文单词_1英语(1到10的英语单词)
- 【10.28 校内普及组】 小B浇花 题解
- 2019年双十一购物数据分析报告