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 8, 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

Element Driver (active development)

Just as the WebDriver Java object has now been superseded by the Driver record, the WebElement Java object should be wrapped in an Element record to allow for the following features:

  • A proper exists? function that takes an Element record as its parameter, instead of the current macro that requires a find-it form
  • A proper present? function, that checks for both existence and visibility in one fell swoop
  • An enhanced set of "waiting" functions that can leverage the above-mentioned exists? and present? as needed

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.

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