特殊场景元素操作
toast元素定位
Android中的Toast是一种简易的消息提示框。 当视图显示给用户,在应用程序中显示为浮动。和Dialog 不一样的是,它永远不会获得焦点,无法被点击。
获取方式:
匹配所有的元素,找对应的text属性值中有包含tips关键字
androidDriver.findElement(By.xpath("//*[contains(@text, ‘tips‘)]"));
元素无法通过工具定位
eg:bilibili的登录页面、银行金融类的App、密码输入界面
原因在于:页面有做了截图限制,不能通过工具(元素定位工具、adb等)进行截图
可以通过adb命令验证页面是否做了截图限制
adb shell screencap -p /sdcard/1.png
解决方案: getPageSource API获取页面源代码信息
手势操作
滑动
滑动效果影响因素
实战示例:下拉刷新
public void swipeDown(long times) {
int width = androidDriver.manage().window().getSize().getWidth();
int height = androidDriver.manage().window().getSize().getWidth();
TouchAction touchAction = new TouchAction(androidDriver);
PointOption startPoint = PointOption.point(width / 2, height / 4);
PointOption endPoint = PointOption.point(width / 2, 3 * height / 4);
Duration duration = Duration.ofMillis(times);
WaitOptions waitOptions = WaitOptions.waitOptions(duration);
touchAction.press(startPoint).waitAction(waitOptions).moveTo(endPoint).release().per form();
}
多点触摸
MultiTouchAction类可以模拟用户多点触摸操作,主要包含有add()和perform()两个方法,可以结合 TouchAction模拟多根手指滑动效果
总结
原文:https://www.cnblogs.com/zhiyu07/p/14182399.html