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的时间不够长。

posted on 2017-07-31 16:50  萌萌安琪拉  阅读(59)  评论(0)    收藏  举报