appium H5写的订单列表一些判断与操作
场景
app打开一个h5页面请求是就刷出20个订单,但是页面才显示6条。我做了个定位,定位如果在手机屏幕上还没有看到的订单,就上拉,把订单啦到出现在屏幕。
目前是定位时,把没有显示在屏幕上的也定位为true。这个需要怎么才可以正确判断
我用了这几个判断都会把未显示在屏幕上的订单也判断为true
我的判断 方法
NATIVE_APP方法
1 driver.scrollToExact("回归了");
2 driver.findElement(By.xpath("//*[@content-desc='回归了']"));
3 driver.findElementByAccessibilityId("回归了");
WebView 方法
1 WebElement uuu= driver.findElement(By.xpath("//*[@data-id='DY20170711000041']"));
这些方法都可以找到这个元素,如果这时候直接点击click时就不会有响应,但是没有抛异常。
在这里我加多了一个判断 根据坐标来判断当前位置是否是在显示屏幕里面
public void list_man(String lis){
int widht = driver.manage().window().getSize().width;
int heigth = driver.manage().window().getSize().height;
boolean eeal= false;
while(eeal==false){
try{
System.out.println(driver.findElementByAccessibilityId(lis).getLocation());
Point start = driver.findElementByAccessibilityId(lis).getLocation();
Point end = driver.findElementByAccessibilityId(lis).getLocation();
System.out.println("屏幕的坐标大小,宽度"+widht+"高度"+heigth);
int startX = start.x;
int endy = end.y;
System.out.println(startX+" "+endy);
if(startX>widht||endy>heigth){
driver.swipe(widht*1/5, heigth*9/10, widht/5, heigth*7/10, 2000);//根据宽和高的百分比来写坐标
Thread.sleep(4000);
driver.findElementByAccessibilityId(lis).click();
Thread.sleep(7000);
if(driver.getPageSource().contains("任务详情")) {
break;
}
Thread.sleep(4000);
eeal =false;
}else{
driver.tap(1, startX, endy, 100);
eeal=true;
}
Thread.sleep(1000);
}catch(Exception e){
System.out.println("1aa");
eeal = false;
}
}
}
不过这里还是有一个问题没有处理好。就是订单列表滑动后坐标会发生改变。我是了如果没有一个其他的请求你时间时坐标没有发生变化。可能sleep的时间不够长。
浙公网安备 33010602011771号