SikuliX: A beginner's guide to using the new version of Sikuli for UI testing and sample automation

แชร์
ฝัง
  • เผยแพร่เมื่อ 9 ส.ค. 2021
  • In this video, I review the new version of Sikuli, a powerful tool for automating UI testing and sample automation tasks. I explore the new features of Sikuli and show you how to use them to your advantage. If you're interested in automating your workflow, this video is a must-watch. Don't miss out on this opportunity to improve your productivity with Sikuli!
    Part 2: • SikuliX Project, Part ...
    Eclipse IDE: www.eclipse.org/
    SikuliX: mvnrepository.com/search?q=Si...
    Initial source code: github.com/demoninyo/sikulix-...
    Updated Dragonary installers as of August 18
    Windows: we.tl/t-rrBlUdFC0e
    Android: we.tl/t-7VOwkPUSkt
    macOs: we.tl/t-04EcL2NV0s
    To make you feel safe, create your own app by just following what I did in the video. Below is the latest code that I have. Make some changes based on your needs. You can also create new project for other games that you are playing :) GOODLUCK!
    package dragonary.dragonaryauto;
    import org.apache.tools.ant.types.resources.comparators.Exists;
    import org.sikuli.script.FindFailed;
    import org.sikuli.script.Pattern;
    import org.sikuli.script.Screen;
    import com.kenai.constantine.platform.WaitFlags;
    public class DragonAuto {
    public static void main(String[] args) {
    DragonAuto object = new DragonAuto();
    object.Play();
    }
    private synchronized void Play() {
    Screen screen = new Screen();
    String imagePath = System.getProperty("user.dir") + "\\";
    //Buttons
    Pattern missionButton = new Pattern(imagePath + "/images/missions_btn");
    Pattern storyButton = new Pattern(imagePath + "/images/story_btn");
    Pattern mission7Button = new Pattern(imagePath + "/images/mission7_btn");
    Pattern playButton = new Pattern(imagePath + "/images/play_btn");
    //Inside Fight Buttons
    Pattern playInsideFightButton = new Pattern(imagePath + "/images/play_inside_btn");
    Pattern manualButton = new Pattern(imagePath + "/images/manual_btn");
    Pattern speedButton = new Pattern(imagePath + "/images/speed_btn");
    Pattern claimButton = new Pattern(imagePath + "/images/claim_btn");
    Pattern continueButton = new Pattern(imagePath + "/images/continue_btn");
    Pattern exitButton = new Pattern(imagePath + "/images/exit_btn");
    while(true) {

    try {
    screen.click(missionButton);
    } catch (FindFailed e) {
    e.printStackTrace();
    }
    try {
    screen.click(storyButton);
    } catch (FindFailed e) {
    e.printStackTrace();
    }
    try {
    screen.click(mission7Button);
    } catch (FindFailed e1) {
    e1.printStackTrace();
    }
    try {
    screen.click(playButton);
    } catch (FindFailed e) {
    e.printStackTrace();
    }
    try {
    screen.wait(playInsideFightButton).click(playInsideFightButton);
    } catch (FindFailed e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    try {
    screen.wait(manualButton).click(manualButton);
    } catch (FindFailed e) {
    e.printStackTrace();
    }
    try {
    screen.wait(speedButton).click(speedButton);
    } catch (FindFailed e) {
    e.printStackTrace();
    }
    try {
    screen.click(claimButton);
    } catch (FindFailed e) {
    e.printStackTrace();
    }
    try {
    screen.wait(continueButton).click(continueButton);
    } catch (FindFailed e) {
    e.printStackTrace();
    }
    try {
    screen.wait(exitButton).click(exitButton);
    } catch (FindFailed e) {
    e.printStackTrace();
    }
    }
    }
    }
    #SikuliX #Automation #UiTesting

ความคิดเห็น • 25

  • @poorboytv3775
    @poorboytv3775 3 ปีที่แล้ว

    thanks for sharing ill try it later more videos plss

  • @shaliniverma9233
    @shaliniverma9233 ปีที่แล้ว +1

    This game is downloaded on your system or it's opening with the help browser?

    • @LearnWithJon
      @LearnWithJon  ปีที่แล้ว

      Hi Shalini, disregard what kind of game, my goal in this video is to show how to make this SikuliX working for automating your manual process. This will work as long as you can capture the target coordinates of your screen. :)

  • @ewelandadi
    @ewelandadi 3 ปีที่แล้ว +1

    I want to try this one, kaso baka maban account ko even it will be used for testing purposes.

    • @ewelandadi
      @ewelandadi 3 ปีที่แล้ว

      subscribing you sir, thank you also for demostrating this tool. magagamit ko siya in my future project work :)

  • @riritv2024
    @riritv2024 3 ปีที่แล้ว +1

    Hey sir ! good project but it stop click when loading long , help me ~ thanks you .

    • @LearnWithJon
      @LearnWithJon  3 ปีที่แล้ว

      it is because, the current source code uploaded to github is not yet updated. it does not have the looping capability yet. I just got lazy to update the code repository yesterday but I will try to do it later.
      If you can't wait my code update, maybe you do that for yourself. just add a while loop and grab all the images that needs to be clicked :)

    • @LearnWithJon
      @LearnWithJon  3 ปีที่แล้ว

      something like this:
      package dragonary.dragonaryauto;
      import org.apache.tools.ant.types.resources.comparators.Exists;
      import org.sikuli.script.FindFailed;
      import org.sikuli.script.Pattern;
      import org.sikuli.script.Screen;
      import com.kenai.constantine.platform.WaitFlags;
      public class DragonAuto {

      public static void main(String[] args) {


      DragonAuto object = new DragonAuto();
      object.Play();

      }

      private synchronized void Play() {

      Screen screen = new Screen();

      String imagePath = System.getProperty("user.dir") + "\\";

      //Buttons
      Pattern missionButton = new Pattern(imagePath + "/images/missions_btn");
      Pattern storyButton = new Pattern(imagePath + "/images/story_btn");
      Pattern mission7Button = new Pattern(imagePath + "/images/mission7_btn");
      Pattern playButton = new Pattern(imagePath + "/images/play_btn");

      //Inside Fight Buttons
      Pattern playInsideFightButton = new Pattern(imagePath + "/images/play_inside_btn");
      Pattern manualButton = new Pattern(imagePath + "/images/manual_btn");
      Pattern speedButton = new Pattern(imagePath + "/images/speed_btn");
      Pattern claimButton = new Pattern(imagePath + "/images/claim_btn");
      Pattern continueButton = new Pattern(imagePath + "/images/continue_btn");
      Pattern exitButton = new Pattern(imagePath + "/images/exit_btn");
      while(true) {


      try {
      screen.click(missionButton);
      } catch (FindFailed e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      }
      try {
      screen.click(storyButton);
      } catch (FindFailed e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      }
      try {
      screen.click(mission7Button);
      } catch (FindFailed e1) {
      // TODO Auto-generated catch block
      e1.printStackTrace();
      }
      try {
      screen.click(playButton);
      } catch (FindFailed e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      }

      try {
      screen.wait(playInsideFightButton).click(playInsideFightButton);
      } catch (FindFailed e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      }

      try {
      screen.wait(manualButton).click(manualButton);
      } catch (FindFailed e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      }
      try {
      screen.wait(speedButton).click(speedButton);
      } catch (FindFailed e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      }
      try {
      screen.click(claimButton);
      } catch (FindFailed e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      }
      try {
      screen.wait(continueButton).click(continueButton);
      } catch (FindFailed e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      }
      try {
      screen.wait(exitButton).click(exitButton);
      } catch (FindFailed e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      }



      }
      }

      }

    • @riritv2024
      @riritv2024 3 ปีที่แล้ว +1

      @@LearnWithJon Thanks Sir ! how to build .Jar or exe

    • @LearnWithJon
      @LearnWithJon  3 ปีที่แล้ว +1

      @@riritv2024 you can check this www.codejava.net/java-core/tools/how-to-compile-package-and-run-a-java-program-using-command-line-tools-javac-jar-and-java

    • @riritv2024
      @riritv2024 3 ปีที่แล้ว +3

      @@LearnWithJon Hi Sir ! can make video tutorial to build exe or jar file?

  • @extasse299
    @extasse299 3 ปีที่แล้ว

    Some say that 40k accounts will be banned or set to be banned by using autoclickers or other similar programs to grind levels. Not sure though.

    • @LearnWithJon
      @LearnWithJon  3 ปีที่แล้ว

      My 2cents here. As of now, I can't see how are they gonna do that for now. Autoclicker is a totally different app where it allows IDLE state.. if you study the flow of the code that I have created, there is no Time/interval pattern that the game will capture. The only way they can capture this is to check/get all the exact same coordinates of all user's mouse/touch click events in the game. dont just rely on the hearsays that you probably just heard/read somewhere. :)

    • @LearnWithJon
      @LearnWithJon  3 ปีที่แล้ว

      You will probably wonder/say how "My Defi Pet" banned user accounts related to autolclicker app. They managed to tracked accounts using autoclicker app or alike because during those days, there was a known bugs and someone just abused that which gave them a huge amount of gold and silver in just one day which is equivalent to 1month farming or more. which is very very suspicious :)

    • @drakepilot-dragonarybot1381
      @drakepilot-dragonarybot1381 2 ปีที่แล้ว

      We been using autoclicker since 2 days after the initial release of dragonary. Its 99% safe and nearly impossible to detect bcoz its working behind noxplayer emulator. The only thing they can do is read the click position and the timing if its acting like a bot. Our autoclicker employ random position clicking and delays to emulate humans. Try it while its free at th-cam.com/video/zOHjs7rLxtI/w-d-xo.html

  • @lunaloona6916
    @lunaloona6916 3 ปีที่แล้ว +1

    wala ba to keylogger lods? hhahahaha

    • @LearnWithJon
      @LearnWithJon  3 ปีที่แล้ว +1

      walang keylogger yan lods.. nilagay ko na yung source code sqa github.. ikaw mismo mag ra-run nyan

    • @lunaloona6916
      @lunaloona6916 3 ปีที่แล้ว +1

      @@LearnWithJon thank you sir, will try it pag-uwi ko mamaya hehe peace!

    • @LearnWithJon
      @LearnWithJon  3 ปีที่แล้ว

      @@lunaloona6916 pa subscribe nalang and share lods :) thanks. ingat!