Cómo desplazarse y desplazarse hasta el último en Appium

Estoy recibiendo algunas imágenes de la API y no sé el número y ahora quiero probar la interfaz de usuario en Android a través de Appium y quiero desplácese hasta la última imagen. ¿Cómo puedo hacer esto y también no sé lo que el título de la API está llegando para que pueda ScrollTo ("Título") y también no soy capaz de deslizar hasta el último. ¿Hay alguna manera?

4 Solutions collect form web for “Cómo desplazarse y desplazarse hasta el último en Appium”

No hay forma de saber con certeza si se ha desplazado hasta el último utilizando appium porque no hay informes de interfaz de usuario para los bordes de una vista de desplazamiento.

Una forma de saber que ha llegado al final de una vista de desplazamiento sin confiar en devs es comparar la lista de todos los niños de la vista de desplazamiento cada vez que pase. Si todos los niños son exactamente iguales, has llegado al final. Un ejemplo de xpath para esto se vería como //android.widget.View[@content-desc="Your scrollview]//* , que llevaría a todos los niños y descendientes.Una vez que tenga una lista para comparar, compruebe el contenido de todos Niños nodos Esto sólo funcionará si hay algo único en estos elementos Si todos los elementos son completamente generales, no habrá nada para comparar y esto no será confiable. Pregunte a los desarrolladores para agregar las descripciones de contenido o datos de accesibilidad a los elementos si es posible .

Otra opción sería que los desarrolladores integraran una vista invisible única en la parte superior e inferior de la vista de desplazamiento. De esa manera, si puede ser encontrado por el conductor, usted sabe que ha alcanzado el borde mismo de la vista. Si ya hay elementos únicos en los bordes de su vista de desplazamiento, puede utilizarlos.

Al final, los desarrolladores de la aplicación pueden realmente ayudar en el proceso de desplazamiento, pero espero que el truco de comparar los niños del scrollview actual puede ayudarle.

Puede usar las dimensiones de la pantalla para desplazarse hacia abajo:

  public void scrollDown() { Dimension size = driver.manage().window().getSize(); int x = size.getWidth() / 2; int starty = (int) (size.getHeight() * 0.60); int endy = (int) (size.getHeight() * 0.10); driver.swipe(x, starty, x, endy, 2000); } 

Puede almacenar todas las imágenes en una lista utilizando su localizador disponible. A continuación, utilice driver.scrollToExact(list.get(list.size()).getAttribute("name"));

Ejemplo:

 List<mobileElement> images = driver.findElementsByClass("<locator>"); driver.scrollToExact(images.get(images.size()).getAttribute("name")); 

o

 driver.scrollToExact(images.get(images.size()).getText()); 
  @Test public void testScroll()throws Exception { for(int i=0;i<4;i++) { Thread.sleep(2000); if (driver.findElement(By.name("end_item")).isDisplayed()) { driver.findElement(By.name("end_item")).click(); break; } else { horizontalScroll(); } } } public void verticalScroll() { size=driver.manage().window().getSize(); int y_start=(int)(size.height*0.60); int y_end=(int)(size.height*0.30); int x=size.width/2; driver.swipe(x,y_start,x,y_end,4000); } 

El ejemplo anterior funciona con scroll vertical y se basa en el ejemplo dado en este blog para desplazamiento horizontal. Espero que esto funcione para ti.

  • Android columna '_id' no existe?
  • Z-index en android?
  • Listview con varias columnas de artículos para la tableta?
  • Android - Navegación personalizada
  • notifyDataSetChanges para el adaptador de lista, modifique sólo parte de la vista
  • ListView addHeaderView hace que la posición aumente en uno?
  • Getview parámetro "convertview" no nulo en el nuevo parámetro "posición"
  • ¿Por qué aparece el teclado de Android al agregar un ListView?
  • EditText en ListView sin reciclar entrada
  • Cómo puede el estilo el ListView de un ListFragment
  • Deshabilitar elementos de vista de lista con selector y isEnabled ()
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.