tutorial sikulix instalar espaƱol java selenium-webdriver webdriver appium sikuli

instalar - sikulix java



Buscando imagen en Sikuli X Java (2)

Tengo un problema al intentar encontrar una imagen en la pantalla, intenté hacerlo de dos maneras diferentes y no parece funcionar para mí. Estoy tratando de hacer esto con Appium ejecutándose en el simulador de IOS que aparece en la pantalla, así que no veo que esto sea un problema de una captura de pantalla.

Estoy ejecutando MAC OSX El Capitan. He importado la API Sikuli X java en mi proyecto.

¿Necesito importar también el tarro de la biblioteca Sikuli de MAC?

Esto es lo que he intentado hasta ahora:

1.

Screen s = new Screen(); Pattern test = new Pattern("/Users/ealiaj/Desktop/Automation/workspace/WheelsUp - IOS/screenshot.jpg"); try { s.find(test); } catch (FindFailed e) { }

2.

Screen s = new Screen(); try { s.find("screenshot.jpg"); } catch (FindFailed e) { }

Sigo consiguiendo que no se pueden encontrar errores.

mensaje de error:

FindFailed: no se puede encontrar / Users / ealiaj / Desktop / Automation / workspace / WheelsUp - IOS / screenshot1.jpg en S (0) [0,0 1440x900] Línea 2189, en el archivo Region.java

Esta es la imagen en la pantalla. El rectángulo rojo grande es la imagen para la que he creado una captura de pantalla y trato de encontrarla, pero me da ese error.

Lo único que puedo encontrar con éxito es ese rectángulo gris, o al menos no arroja un error para.


El mensaje de error dice que el programa busca un archivo .PNG y en su código está colocando un archivo .JPG.


Puedes usar este método para verificar las imágenes:

@Test public void verifyImages() { //WebElement img = driver.findElementByClassName("android.widget.ImageView"); //take screen shot File screen = ((TakesScreenshot) driver) .getScreenshotAs(OutputType.FILE); //capture image of searched contact icon List<WebElement > imageList = driver.findElementsByXPath("//*[@class=''android.widget.ImageView'' and @index=''0'']"); System.out.println(imageList.size()); System.out.println(i); WebElement image = imageList.get(1); Point point = image.getLocation(); //get element dimension int width = image.getSize().getWidth(); int height = image.getSize().getHeight(); BufferedImage img = ImageIO.read(screen); BufferedImage dest = img.getSubimage(point.getX(), point.getY(), width, height); ImageIO.write(dest, "png", screen); File file = new File("Menu.png"); FileUtils.copyFile(screen, file); //verify images verifyImage("Menu.png", "Menu.png" ); } public void verifyImage(String image1, String image2) throws IOException{ File fileInput = new File(image1); File fileOutPut = new File(image2); BufferedImage bufileInput = ImageIO.read(fileInput); DataBuffer dafileInput = bufileInput.getData().getDataBuffer(); int sizefileInput = dafileInput.getSize(); BufferedImage bufileOutPut = ImageIO.read(fileOutPut); DataBuffer dafileOutPut = bufileOutPut.getData().getDataBuffer(); int sizefileOutPut = dafileOutPut.getSize(); Boolean matchFlag = true; if(sizefileInput == sizefileOutPut) { for(int j=0; j<sizefileInput; j++) { if(dafileInput.getElem(j) != dafileOutPut.getElem(j)) { matchFlag = false; break; } } } else matchFlag = false; Assert.assertTrue(matchFlag, "Images are not same"); }