воскресенье, 4 ноября 2012 г.

How to integrate Sikuli script with Selenium WebDriver (WebDriver and Sikuli Integration)



How to integrate SIKULI script with SELENIUM WEBDRIVER

Sikuli is a robust and powerful tool to automate and tests user interfaces screenshots. The core of Sikuli Script is written in Java, which means you can use Sikuli Script as a standard JAVA library in your program. This article lets you know how to do that.

1. Download and install Sikuli using the self-extracting installer(http://www.sikuli.org/download.html).
Note: Only 32-bit version is provided for using as a standard JAVA library. But SIKULI IDE could run on both 32-bit and 64-bit Windows systems.

2. Create new Java project (use Eclipse as an example):


3. Fill project name and click Finish:


4. Create new class:


5. Fill class name and click Finish:



6. Include sikuli-script.jar, selenium-server-standalone-2.25.0.jar, selenium-java-2.25.0.jar in the CLASSPATH of your Java project. 



Get sikuli-script.jar from your Sikuli IDE installation path.

Sikuli Script is packed in a JAR file - sikuli-script.jar. Depending on the operating system you use, you can find the sikuli-script.jar in according places.

Windows, Linux: Sikuli-IDE/sikuli-script.jar
Mac OS X: Sikuli-IDE.app/Contents/Resources/Java/sikuli-script.jar

After adding sikuli-script.jar, selenium-server-standalone-2.25.0.jar, selenium-java-2.25.0.jar as a libraries into your project, the project hierarchy should look like this:

After click OK:


7. After configuring in build path, create and initialize an instance of Screen object.

SIKULI + SELENIUM WEBDRIVER


import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.sikuli.script.App;
import org.sikuli.script.FindFailed;
import org.sikuli.script.Pattern;
import org.sikuli.script.Screen;

public class sikuliFirstTest {

@Test
public void functionName() throws FindFailed {
// Create a new instance of the Firefox driver
WebDriver driver = new FirefoxDriver();

// And now use this to visit Google
driver.get("http://www.google.com");

//Create and initialize an instance of Screen object    
Screen screen = new Screen();

//Add image path  
Pattern image = new Pattern("C:\\searchButton.png");
    
//Wait 10ms for image  
screen.wait(image, 10);
    
//Click on the image
screen.click(image);
  }
}

Here example using SIKULI without Selenium WebDriver:


import org.junit.Test;
import org.sikuli.script.App;
import org.sikuli.script.FindFailed;
import org.sikuli.script.Pattern;
import org.sikuli.script.Screen;

public class sikuliFirstTest {

@Test
public void functionName() throws FindFailed {

//Open FireFox application with google home page  
App firefox = App.open("c:\\Program Files\\MozillaFirefox\\firefox.exe");
//Create and initialize an instance of Screen object    
Screen screen = new Screen();
//Add image path  
Pattern image = new Pattern("C:\\searchButton.png");
    
//Wait 10ms for image  
screen.wait(image, 10);
    
//Click on the image
screen.click(image);

//Close firefox   
firefox.close();
  }
}

4 комментария:

  1. I am working on integrating sikuli with selenium webdriver on system ubuntu.
    I am finding errors like java.lang.UnsatisfiedLinkError: org.sikuli.script.natives.VisionProxyJNI.new_FindInput__SWIG_0(). I am running it with ant. Can I get a solution for that.

    Regards
    Paridhi Mittal

    ОтветитьУдалить
  2. FindFailed: can not find (image in) sikulitestcase.sikuli/1390888745315.png on the screen.

    ОтветитьУдалить