An open API service indexing awesome lists of open source software.

https://github.com/operasoftware/watir3-spec

Proposal for Watir 3 API
https://github.com/operasoftware/watir3-spec

Last synced: 10 months ago
JSON representation

Proposal for Watir 3 API

Awesome Lists containing this project

README

          

Watir 3 Specification
=====================

This repository contains a proposal for the successor to the current
[Watir API](http://wiki.openqa.org/display/WTR/Summary) (version 1). It
is still in development, and we welcome any feedback on our [mailing
list](https://list.opera.com/mailman/listinfo/operawatir-users).

The first generation Watir API suffers from a lack consistency and
from not being easily extendible in special cases. Some of these issues
were addressed in the second generation API, Watir 2, by Jari Bakken and
his watir-webdriver implementation. However, even with full HTML 5
compliancy, it was still hard to access all elements and attributes
present in the DOM.

Watir 3 is the next generation specification aiming to keep the methods
as consistent as possible, i.e. no special cases, such as `browser.link`
in Watir 1, and to make the common case as simple and as concise as
possible.

This specification can be extended by a Watir 2 implementation, which
again can be extended by a Watir 1 implementation. This means that we
in the future can be able to support _all three_ API versions in the
same code base. This work is unfortunately still a work in progress.

This specification is so far implemented by
[OperaWatir](https://github.com/operasoftware/operawatir).

Dependencies
------------

The specs run a small Sinatra webapp (_WatirSpec::Server_) to simulate
interacting with a web server. However, most specs use the _file://_
scheme to avoid hitting the server.

A quick guide
-------------

Start with

window = OperaWatir::Browser.new.window

Find all `

` tags with

window.div # => Collection of

s
window.find_by_tag(:div) # => Array of