那天写了个 控件内点击指定位置:http://testerhome.com/topics/2247
今天重新改了下,对控件内的滑动,如下控件我需要在控件里面滑动,选取:
具体代码如下(目前只做滑动一次,有需要可以自己再做修改,如果有更好方式操作,求推荐):
/**
* 控制滑动方向
*/
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);
}