{"id":15209681,"url":"https://github.com/waicool20/skrypton","last_synced_at":"2025-10-08T15:05:51.537Z","repository":{"id":57729531,"uuid":"103044311","full_name":"waicool20/SKrypton","owner":"waicool20","description":"A browser automation library that uses SikuliX and doesn't grab your mouse","archived":false,"fork":false,"pushed_at":"2017-10-16T05:22:33.000Z","size":694,"stargazers_count":10,"open_issues_count":0,"forks_count":0,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-11-01T11:42:50.912Z","etag":null,"topics":["automation","cpp","kotlin","qt5","sikulix"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/waicool20.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-09-10T16:29:09.000Z","updated_at":"2022-02-13T01:32:01.000Z","dependencies_parsed_at":"2022-09-11T06:07:26.957Z","dependency_job_id":null,"html_url":"https://github.com/waicool20/SKrypton","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/waicool20/SKrypton","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waicool20%2FSKrypton","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waicool20%2FSKrypton/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waicool20%2FSKrypton/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waicool20%2FSKrypton/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/waicool20","download_url":"https://codeload.github.com/waicool20/SKrypton/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waicool20%2FSKrypton/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278963884,"owners_count":26076555,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","cpp","kotlin","qt5","sikulix"],"created_at":"2024-09-28T08:00:21.163Z","updated_at":"2025-10-08T15:05:51.483Z","avatar_url":"https://github.com/waicool20.png","language":"Kotlin","readme":"# SKrypton [![Build Status](https://travis-ci.org/waicool20/SKrypton.svg?branch=master)](https://travis-ci.org/waicool20/SKrypton) [![Build status](https://ci.appveyor.com/api/projects/status/ymrghyv7oas5q2iu?svg=true)](https://ci.appveyor.com/project/waicool20/skrypton) [ ![Download](https://api.bintray.com/packages/waicool20/SKrypton/skrypton-api/images/download.svg) ](https://bintray.com/waicool20/SKrypton/skrypton-api/_latestVersion)\n\nA browser automation library that uses the SikuliX framework but doesn't grab the mouse.\n\nThis library uses QtWebEngine as its backbone for displaying webpages, therefore apart from SikuliX \nthis project also has its own set of native components which need to be pre-installed. The library\nutilizes JNI to bridge between the native and JVM side. \n\nThe library works by providing its own sub-classes of Region, Match and Screen (Just prefixed with\nSKrypton) Each SKryptonScreen instance has its own virtual mouse, keyboard and clipboard. Therefore\neach can be controlled independently from each other and the desktop. To aid debugging, a virtual \nmouse indicator (Visibility can be toggled) has been added.\n\nThe name SKrypton comes from combining Script and Krypton, why Krypton? Because it's an element \ntwo Atomic Numbers away from [Selenium](http://www.seleniumhq.org/) another well-known browser\nautomation tool named after an element. SKrypton can support control from Selenium if remote debug \nport is enabled.\n\n[Here's a small clip to see it in action](https://streamable.com/t1oiu)\n\n[This is the file being showcased](src/test/kotlin/com/waicool20/skrypton/SKryptonGithub.kt)\n\n# Installation and Usage\n\n### I just want to run a SKrypton program!:\n\n- Requires [Java JRE 8](http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html) installed\n- SKrypton Native components (Installable Jar under Downloads, just double click and follow instructions)\n    - [Windows 64-bit](https://bintray.com/waicool20/SKrypton/skrypton-native-windows64#)\n    - [Linux 64-bit](https://bintray.com/waicool20/SKrypton/skrypton-native-linux64#)\n    - I don't own a Mac, so no builds for it yet sorry.\n\n### Developing with the API:\n\n#### Official builds\n\nSKrypton is available on the jcenter and maven central repository, replace `VERSION` with the \nversion specified by the badge above or a version of your own choosing.\n\n```\nrepositories {\n    // For resolving SKrypton artifacts\n    jcenter()       // or mavenCentral()\n    // For resolving SikuliX artifacts\n    maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }\n}\ndependencies {\n    compile group: 'com.waicool20.skrypton', name: 'skrypton-api', version: 'VERSION'\n}\n```\n\n#### Snapshots\n\n[Snapshots for api jar are available here](https://oss.jfrog.org/artifactory/oss-snapshot-local/com/waicool20/skrypton/skrypton-api) \n\nTo include the library API snapshot in your project you can add this snippet to your `build.gradle` file,\nreplace `VERSION` with a specific snapshot (Take a look in the link above and get the latest one)\n\n```\nrepositories {\n    // For resolving SKrypton artifacts\n    maven { url 'https://oss.jfrog.org/artifactory/oss-snapshot-local/' }\n    // For resolving SikuliX artifacts\n    maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }\n}\ndependencies {\n    compile group: 'com.waicool20.skrypton', name: 'skrypton-api', version: 'VERSION'\n}\n```\n\n[Snapshots for the installers are also available in the group directory](https://oss.jfrog.org/artifactory/oss-snapshot-local/com/waicool20/skrypton/)\n\n#### Quick start (Kotlin API):\n\n```kotlin\nfun main(args: Array\u003cString\u003e) {\n    /* Initialize the SKryptonApp instance with the args from the command line\n       Since SKryptonApp is chromium based, we can enable DevTools on port 8888\n       and access it through localhost:8888 */\n    SKryptonApp.initialize(args, remoteDebugPort = 8888) {\n        // Initialize a screen with the given URL\n        screen(\"https://github.com/waicool20/SKrypton\") {\n            // Click coordinates X: 100 Y: 100\n            // This is from the SikuliX API, refer to these docs for more info:\n            // https://sikulix-2014.readthedocs.io/en/latest/region.html\n            click(Location(100, 100))\n        }\n        // Initialize a screen with the given URL, width and height\n        screen(\"https://github.com/waicool20/SKrypton\", width = 800, height = 600) {\n            // Type \"Hello World!\" into the screen.\n            // This is from the SikuliX API, refer to these docs for more info:\n            // https://sikulix-2014.readthedocs.io/en/latest/region.html        \n            type(\"Hello World!\") \n        }\n        // Initialize a screen that doesn't show the virtual cursor\n        screen(\"https://github.com/waicool20/SKrypton\", showCursor = false) {\n            // Move mouse to X: 100 Y: 100 but don't click\n            // This is from the SikuliX API, refer to these docs for more info:\n            // https://sikulix-2014.readthedocs.io/en/latest/region.html\n            hover(Location(100, 100))\n        }        \n    }.exec(true) // Finally execute the SKryptonApp instance\n}\n```\n\n# Documentation\n\n[You are welcome to checkout the API documentation over here](https://waicool20.github.io/SKrypton/skrypton-api/)\n\n# Build instructions\n\n### Prerequisites:\n\nCommon:\n- [Java JDK 8](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)\n- [CMake 3.9.x](https://cmake.org/download/)\n- [Qt 5.9.1](https://www1.qt.io/download-open-source/#section-2)\n    - QtWebEngine is a required component and must be installed\n    - On Windows, MSVC version must be used (MinGW etc. versions are untested)\n    \nLinux:\n- GNU GCC7 (Available readily under this PPA `ubuntu-toolchain-r-test`on Ubuntu based distros)\n- GNU G++7 (Available readily under this PPA `ubuntu-toolchain-r-test`on Ubuntu based distros)\n- libGLESv2 (Typically incl. in `libgles2-mesa` package on Ubuntu based distros)\n- libEGL (Typically incl. in `libegl1-mesa` package on Ubuntu based distros)\n\nWindows:\n- [MSVC 2017](https://www.visualstudio.com/downloads/)\n\n---\n### Actually building the project:\n\nLinux:\n```bash\n# Build API Jar and native components release jar only\n./gradlew build\n\n# Build All Jars (incls. Test Jar and native components debug jar)\n./gradlew buildAll\n```\n\nWindows:\n```\n# Build API Jar and native components release jar only\ngradlew.bat build\n\n# Build All Jars (incls. Test Jar and native components debug jar)\ngradlew.bat buildAll\n```\n\nAPI Jar and Test Jar are generated under:\n\n\u003e build/libs\n\nNative component Jars are generated under:\n\n\u003e native/build/libs\n\n# License\n\nThis project is licensed under the MIT license. See [LICENSE.md](LICENSE.md) for more details.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaicool20%2Fskrypton","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwaicool20%2Fskrypton","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaicool20%2Fskrypton/lists"}