Skip to content
This repository was archived by the owner on Nov 9, 2017. It is now read-only.

Roadmap

semperos edited this page Nov 29, 2011 · 11 revisions

This wiki page is the replacement for the TODO.md file previously in this repo.

Road to 1.0

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

Feature Wishlist

Driver Record Enhancements

  • 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

Enlive Integration

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.

Wrappers/Middlewares

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.

Tests

  • Need greater diversity of browsers for test coverage (not possible with Travis, at the moment)
  • Need to test Grid-based functions
Clone this wiki locally