-
Notifications
You must be signed in to change notification settings - Fork 93
Roadmap
This wiki page is the replacement for the TODO.md
file previously in this repo.
These are my priorities on the road to 1.0:
- Element record implementation (see below)
- Complete Selenium-WebDriver API coverage (or pure Clojure replacements where appropriate, e.g. caching)
- More maintainable implementations of the
find-*
functions - 100% test coverage
- The Driver record could register "wrapper functions" that act as middlewares (see below)
- The Driver could house extra meta-data, useful both for pure Clojure programming and for configuration with things like the Selenium Grid
Creating an object for every element on the page you need to identify is a bit heavy. If you need to interact with an element, this makes sense, but if you only need to ensure that the source code of the page includes certain elements with certain HTML attributes, a lighter-weight mechanism could be beneficial.
Idea: Use the page-source
function to pull down the source of the current page and integrate Christophe Grand's Enlive library to allow Enlive-style queries against that source code. Enlive querying is much faster and allows for dealing with the target element's attributes in a normal Clojure map.
Caveat: If this is done, it needs to add some level of integration between clj-webdriver and enlive. If there is no appropriate integration point, then we should just make a page in this wiki as a "how to" for using page-source
with enlive and let consumers of clj-webdriver's API use enlive separately.
Beyond simply interactions with the page, this library should allow developers to gather information about the elements, the page or the browser at any given point. To help foster this, it would be nice to be able to "wrap" functionality around the means of interacting with the page, and allow developers to write middlewares that do things like custom reporting, extra auxiliary validation, or even things that might alter the DOM based on context.
Query-wrappers would allow wrapping around the query sent to WebDriver, before ever touching the HTML page.
Result-wrappers would allow wrapping around the result of an interaction with the page, which is almost always an HTML element.
- Need greater diversity of browsers for test coverage (not possible with Travis, at the moment)
- Need to test Grid-based functions
The clj-webdriver Uncyclo by Daniel Gregoire and community is licensed under a Creative Commons Attribution 4.0 International License. Based on a work at https://github.com/semperos/clj-webdriver/wiki.