It is mainly used for interacting with elements of webpages and handling windows based popups Sikuli uses the technique of "Image Recognition" and "Control GUI" to interact with elements of web pages and windows popups, all web elements are taken as image and stored inside project.
1. if you want to upload a desktop file/image on the website.
2. You can run and change setting on your YouTube channel
add dependency of Sikuli in your POM file and Sikuli jar will be added in you Maven dependencies
<dependency>
<groupId>org.sikuli</groupId>
<artifactId>sikuli-api</artifactId>
<version>1.2.0</version>
</dependency>
Automating Flash objects
Let's take example of automating a Youtube video using Sikuli. after opening the video lets suppose you want to click on Mute button then press stop and then go to setting and change video quality.
you can also add it manually by right click on project Build path->Configure Build path->Add external Jar
In order to do this first take a snapshot of all mention buttons, copy all the images add it in your project .
code for Sikuli
public class Sikuli {
@Test
public void test() throws SikuliException
{
System.setProperty("Webdriver.chrome.driver","chromedriver");
WebDriver driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
driver.get("https://www.youtube.com/watch?v=569qoURhXoY");
// create object of screen class
Screen s = new Screen();
//create object of pattern class
Pattern Pause1 =new Pattern("Mypause.png");
//wait till the image is visible
s.wait(Pause1,2000);
s.click();
s.click();
driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
Pattern Play1 = new Pattern("Myplay.png");
s.wait(Play1,2000);
s.click();
s.click();
driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
Pattern vol1 = new Pattern("Myvolume.png");
s.wait(vol1,2000);
s.click();
s.click();
driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
Pattern set1 = new Pattern("Mysetting.png");
s.wait(set1, 2000);
s.click();
s.click();
driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
Pattern qua1 = new Pattern("Auto1080p.png");
s.wait(qua1,2000);
s.click();
s.click();
driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
Pattern qua2 = new Pattern("144p.png");
s.wait(qua2,2000);
s.click();
s.click();
}
}
Uploading a file using Sikuli
public class Sikuliupload {
@Test
public void test() throws SikuliException
{
System.setProperty("Webdriver.chrome.driver","chromedriver");
WebDriver driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
driver.get("https://www.naukri.com");
driver.manage().window().maximize();
driver.findElement(By.xpath("//div[@class='wdgt-upload-btn']/label")).click();
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
//once "upload cv" is clicked a new window will open to to identify the window take screenshot where the path is provided and save it in below path
String imageFilepath = "Users\\priyankac\\Desktop\\Screenshot2\\";
//where the file to be uploaded location is present
String inputFilepath ="Users\\priyankac\\Desktop\\Screenshot2\\";
Screen sc = new Screen();
//search image
Pattern file = new Pattern(imageFilepath +"search.docx");
//open image
Pattern OB = new Pattern(imageFilepath +"OPEN.png");
sc.wait(file,20);
//file to be uploaded is pc.docx
sc.type(file,inputFilepath+"pc.docx");
// to click on open button so that file gets uploaded
sc.click(OB);
}
}
Comments
Post a Comment