{"id":20401448,"url":"https://github.com/jackrusher/sparkledriver","last_synced_at":"2025-04-09T20:12:47.948Z","repository":{"id":65351522,"uuid":"72867976","full_name":"jackrusher/sparkledriver","owner":"jackrusher","description":"A clojure wrapper for jBrowserDriver, which is a Selenium-compatible wrapper around JFX embedded WebKit.","archived":false,"fork":false,"pushed_at":"2019-12-20T10:20:27.000Z","size":176,"stargazers_count":126,"open_issues_count":0,"forks_count":9,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-04-09T20:12:42.594Z","etag":null,"topics":["clojure","clojure-wrapper","jbrowserdriver","webkit"],"latest_commit_sha":null,"homepage":"","language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jackrusher.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-11-04T17:00:30.000Z","updated_at":"2025-02-20T18:51:24.000Z","dependencies_parsed_at":"2023-01-19T07:05:12.350Z","dependency_job_id":null,"html_url":"https://github.com/jackrusher/sparkledriver","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackrusher%2Fsparkledriver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackrusher%2Fsparkledriver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackrusher%2Fsparkledriver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackrusher%2Fsparkledriver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jackrusher","download_url":"https://codeload.github.com/jackrusher/sparkledriver/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248103872,"owners_count":21048245,"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","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":["clojure","clojure-wrapper","jbrowserdriver","webkit"],"created_at":"2024-11-15T04:49:32.092Z","updated_at":"2025-04-09T20:12:47.929Z","avatar_url":"https://github.com/jackrusher.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sparkledriver\n\n**Because of changes to the underlying JavaFX libraries, this library\ncurrently works with Java 1.8! It will fail immediately on more modern\nJVMs.**\n\n![Sparkledriver glitter tractor](https://raw.githubusercontent.com/jackrusher/sparkledriver/master/assets/SparkleDriver.jpg)\n\nA mostly idiomatic wrapper\naround\n[jBrowserDriver](https://github.com/MachinePublishers/jBrowserDriver),\nwhich is a pure-Java [Selenium](http://seleniumhq.org/)-compatible\ninterface to the [WebKit](https://webkit.org) browser library included\nin recent JVM versions (\u003e=1.8) as part\nof\n[JavaFX](http://docs.oracle.com/javase/8/javafx/get-started-tutorial/jfx-overview.htm#JFXST784).\n\nThis library is useful when you need a full-featured browser with\nsupport for cookies, Javascript, and so on, with no native\ndependencies. I've found it to be a nice basis for testing web\napplications, scraping content from Javascript-heavy websites,\nautomating interactions with services, and so on.\n\n**N.B.** While Oracle's JVM bundles JavaFX, the OpenJDK JVM does not\ncome with it. If you're using OpenJDK (which is the default on\n_ubuntu_, for example), you must also install the OpenJFX package on\nyour chosen platform in order to use this library.\n\n## Quick Start\n\n``` clojure\n[sparkledriver \"0.2.4\"]\n```\n\nThis example fetches the Clojure homepage, extracts some elements and\nretrieves the text of one:\n\n``` clojure\n(require '[sparkledriver.browser :refer [with-browser make-browser fetch!]])\n(require '[sparkledriver.element :refer [find-by-xpath* text]])\n\n(with-browser [browser (make-browser)]\n  (-\u003e (fetch! browser \"http://clojure.org\")\n      (find-by-xpath* \"//div[@class='clj-intro-message']/p\")\n      (nth 2)\n      text))\n;;=\u003e \"I hope you find Clojure's combination of facilities elegant, powerful, practical and fun to use.\"\n```\n\nThere are many more specific examples in the test suite. In additon,\nthe automatically\ngenerated [codox](https://github.com/weavejester/codox) documentation\nis [here](https://jackrusher.github.io/sparkledriver/).\n\n## A Note on Dependencies\n\nA case has\nbeen [reported](https://github.com/jackrusher/sparkledriver/issues/5)\nwhere an old version of `common-codec`, as a library dependency, was\ncausing the tests to fail. If you experience this issue, please add\nthe following dependency:\n\n```clj\n[commons-codec \"1.9\"]\n```\n\nto your project.\n\n## Completeness/Robustness\n\nWhile there are still a few areas where the underlying APIs could be\nmore completely wrapped, the core functionality has been enrobed in\ndelicious parentheses. Some bits are better tested than others, but I\n*am* currently using this library in production.\n\n## License\n\nCopyright © 2016-2019 Jack Rusher\n\nDistributed under the Eclipse Public License either version 1.0 or (at\nyour option) any later version.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjackrusher%2Fsparkledriver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjackrusher%2Fsparkledriver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjackrusher%2Fsparkledriver/lists"}