今天遇到一个问题,想要点击某个控件的某个位置(左上,左下,右上,右下,中间),稍微做了封装,具体代码如下,有不妥欢迎指出:
点击:
/**
* 单个手指,点击屏幕某个控件位置(左上,左下,右上,右下,中间)
*/
public enum Location {
UPLEFT, LOWLEFT, UPRIGHT, LOWRIGHT, CENTRE
}
/**
* 点击控件某个地方
*
* @param step
* @param by
* @param location
*/
public void clickControl(String step, By by, Location location) {
log.info(step);
// 获取控件开始位置的坐标轴
Point start = this.findElement(driver, by).getLocation();
int startX = start.x;
int startY = start.y;
// 获取控件坐标轴差
Dimension q = this.findElement(driver,by).getSize();
int x = q.getWidth();
int y = q.getHeight();
// 计算出控件结束坐标
int endX = x + startX;
int endY = y + startY;
switch (location) {
// 左上 点击
case UPLEFT:
driver.tap(1, startX + 10, startY + 10, 100);
TaquTools.sleep(2);
break;
// 右上 点击
case UPRIGHT:
driver.tap(1, endX - 10, startY + 10, 100);
TaquTools.sleep(2);
break;
// 左下 点击
case LOWLEFT:
driver.tap(1, startX + 10, endY - 10, 100);
TaquTools.sleep(2);
break;
// 右下 点击
case LOWRIGHT:
driver.tap(1, endX - 10, endY - 10, 100);
TaquTools.sleep(2);
break;
// 中间 点击
case CENTRE:
driver.tap(1, (endX + startX) / 2, (endY + startY) / 2, 100);
TaquTools.sleep(2);
break;
}
}
滑动操作,如上图,我需要在控件里面滑动,选取,具体代码如下(目前只做滑动一次,有需要可以自己再做修改):
/**
* 控制滑动方向
*/
public enum Heading {
UP, DOWN
}
/**
* 控件内上下滑动
*
* @param step 测试步骤
* @param by 控件定位方式
* @param heading 滑动方向 UP DOWN
*/
public void swipeControl(String step, By by, Heading heading) {
// 获取控件开始位置的坐标轴
Point start = this.findElement(driver, by).getLocation();
int startX = start.x;
int startY = start.y;
// 获取控件坐标轴差
Dimension q = this.findElement(driver, by).getSize();
int x = q.getWidth();
int y = q.getHeight();
// 计算出控件结束坐标
int endX = x + startX;
int endY = y + startY;
// 计算中间点坐标
int centreX = (endX + startX) / 2;
int centreY = (endY + startY) / 2;
switch (heading) {
// 向上滑动
case UP:
driver.swipe(centreX, centreY + 30, centreX, centreY - 30, 500);
break;
// 向下滑动
case DOWN:
driver.swipe(centreX, centreY - 30, centreX, centreY + 30, 500);
break;
}
log.info(step);
}
本文介绍了在遇到需要在特定控件位置进行点击或滑动的操作时,如何使用Appium进行封装处理。提供了点击控件不同位置的代码示例,并展示了在控件内部执行滑动选择的代码,当前实现为单次滑动,可根据需求扩展。

2633

被折叠的 条评论
为什么被折叠?



