当前位置: 首页 > 知识库问答 >
问题:

页面滚动未在appium java客户端发生

欧阳俊逸
2023-03-14

我正在为我的应用程序进行自动化移动测试。在输入用户名后登录页面

1)
WebElement element1 = driver.findElement(MobileBy.AccessibilityId("btnLogin"));
	  	  int x = element1.getLocation().getX();
	  	  int y = element1.getLocation().getY();
		  TouchAction action = new TouchAction((PerformsTouchActions) driver);
	  action.press(x,y).moveTo(x,y-90).release().perform();
    
    2)
    WebElement element1 = driver.findElement(MobileBy.AccessibilityId("btnLogin"));
	  ((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView(true);",element1);
    
    3)
    
     TouchAction action = new TouchAction((PerformsTouchActions) driver);
	  WebElement element1 = driver.findElement(MobileBy.AccessibilityId("com.a.b:id/imageView"));
	  WebElement element2 = driver.findElement(MobileBy.AccessibilityId("com.a.b:id/btnLogin"));
	  action.press(element1).moveTo(element2).release();
    
    4)
    JavascriptExecutor js = (JavascriptExecutor) driver;
	  HashMap<String, String> scrollObject = new HashMap<String, String>();
	  scrollObject.put("direction", "up");
	  scrollObject.put("element", "btnLogin");
	  js.executeScript("mobile: scroll", scrollObject);
    
    5)
    ((AndroidDriver) driver).context("NATIVE_APP");
	  WebElement element = driver.findElementById("btnLogin");
	  int x = element.getSize().getWidth();
    int xEnd = 0;
	  int yStart = element.getSize().getHeight()/2;
	  ((AndroidDriver) driver).swipe(x, yStart, xEnd, yStart, 500);

我无法解决这个问题。。你能给我推荐一些示例代码来解决这个问题吗。

共有2个答案

曾鸿振
2023-03-14
public static void swipeVertical(AppiumDriver driver, double startPercentage, double finalPercentage, double anchorPercentage, int duration) throws Exception {
    Dimension size = driver.manage().window().getSize();
    int anchor = (int) (size.width * anchorPercentage);
    int startPoint = (int) (size.height * startPercentage);
    int endPoint = (int) (size.height * finalPercentage);
    new TouchAction(driver).press(anchor, startPoint).waitAction(duration).moveTo(anchor, endPoint).release().perform();
}

像这样调用上面的方法:

对于向上滚动:swopVertical((AppiumDriver)驱动程序,0.9,0.1,0.5,3000);

对于向下滚动:swipeVertical((AppiumDriver)驱动程序,0.1,0.9,0.53000)

苏建安
2023-03-14

要隐藏键盘,您可以使用以下方法driver.hideKeyboard()。此工作与AppiumDriver。

输入用户名和密码后,您可以使用以下代码行:

driver.hidekeyboard();

 类似资料:
  • # 一面HR 群面 轮流问几个人开放性的问题 # 二面 8/1 26min 实习负责的内容 用到了哪些Unity的组件 UGUI 优化方面,注意点 骨骼动画 有了解过吗 X Animator的原理? 用Animator的话要怎么去管理配置,方便策划美术? X Lua的协程 怎么管理协程的唤醒和挂起 X 运动模拟有做过吗,一个抛物线的运动 X 几何的算法有了解吗 2D的 点和三角形的关系怎么做 2D

  • C++11新特性了解哪些 什么是移动语义 面试官给了一个线程池代码,给五分钟读代码,然后给面试官讲解一遍(C++11写的) 万能引用的作用 线程池中vector<std::thread> 有什么用,thread的资源在堆上还是在栈上 vector扩容,什么时候触发扩容 除了mutex还用过其它的锁吗 讲讲C++17的读写锁 unique_lock 和 lock_guard 的区别 问线程池代码中,

  • 前排提醒:一点编程语言相关的都没有问 第一个问题:贪吃蛇用什么结构存储:双向队列 第二个问题:a星算法了解过吗 碰到大c环怎么处理:记录一边尝试过的次数 下次选的时候选择尝试次数少的 第三个问题:介绍渲染管线 实际场景阴影怎么渲染:移动相机 第四个问题:如何判断扇形技能是否击中敌人:向量点乘,划分象限求余弦值 第五个问题:快速判断阶乘的大小:区间逼近法 整体体验:前几个问题还行 后面的基本就是顺着

  • 4.16技术一面 1.栈和堆的区别(指内存上的栈和堆) 2.GC有哪些方法,分别讲一下他们的原理和优缺点 3.在unity里,GC会带来什么不好的影响,如何减少GC的触发 4.装箱拆箱是什么 5.频繁的装箱拆箱会造成什么后果,如何避免频繁的装箱拆箱 6.C++的vector是如何实现动态扩容的 7.map的底层原理 8.介绍红黑树的特点 9.unordered_map的底层原理 10.有哪些解决哈

  • 时长:1小时 1. 自我介绍:5分钟 2. 项目问答 2.1 如果数据库的内容发生了改变,如何实现数据的迁移?(不懂) 2.2 项目的组织架构是什么样的? 2.3 我看你项目架构用的是MVC,那么还知道哪些架构?(MVVM) 2.4 MVVM和MVC的各自使用场景? 2.5 项目中遇到了哪些困难? 2.6 自己在项目中遇到困难如何进行解决的? 3. 开放性问答 3.1 为什么要选择iOS这个行业?

  • 时长:1小时18分钟 1. 自我介绍:约5分钟 2. 开放性问答 2.1 你如何与团队成员之间进行高效沟通? 2.2 每个人都负责一个模块,那最后进行汇总组装的时候,如何进行测试? 3. iOS基础 3.1 MVC是指什么? 3.2 如何改进MVC的缺点?(引入MVVM) 3.3 既然引入了MVVM,那我为什么不在MVC中让Model引用View,或者View引用Model从而进行优化?(不可以,