wson-dom-connector
Version:
Serialize DOM nodes to xPaths with wson.
90 lines (61 loc) • 2.59 kB
Markdown
[travis-url]: http://travis-ci.org/mchalapuk/wson-dom-connector
[travis-image]: https://api.travis-ci.org/mchalapuk/wson-dom-connector.svg
[david-url]: https://david-dm.org/mchalapuk/wson-dom-connector
[david-image]: https://david-dm.org/mchalapuk/wson-dom-connector.svg
[david-url-dev]: https://david-dm.org/mchalapuk/wson-dom-connector?type=dev
[david-image-dev]: https://david-dm.org/mchalapuk/wson-dom-connector/dev-status.svg
[npm-url]: https://npmjs.org/package/wson-dom-connector
[npm-image]: https://badge.fury.io/js/wson-dom-connector.svg
# wson-dom-connector
[![Build Status][travis-image]][travis-url]
[![Dependency Status][david-image]][david-url]
[![devDependency Status][david-image-dev]][david-url-dev]
[![NPM version][npm-image]][npm-url]
[WSON][wson] is a human-readable data-interchange format with support for cyclic
structures. This module is an extension to wson that enables serializing
[DOM][dom] nodes to their [xpaths][xpath] and parsing those xpaths back to DOM
nodes.
[wson]: https://github.com/tapirdata/wson
[dom]: https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model
[xpath]: https://www.w3.org/TR/xpath/
**Possible Use Cases**
1. Store references to DOM elements between page reloads,
2. Record DOM events to later simulate a user during automated test
(needs [`wson-event-connector`][wson-event-connector]).
[wson-event-connector]: https://github.com/mchalapuk/wson-event-connector
## Installation
```shell
npm install --save wson wson-dom-connector
```
## Usage
wson-dom-conector can be used in a web browser via [browserify][browserify]...
[browserify]: https://github.com/substack/node-browserify
```javascript
var WSON = require("wson").Wson;
var domConnectors = require("wson-dom-connector");
var wson = new WSON({
connectors: domConnectors(window)
});
console.log(wson.stringify(document.body));
// [:HTMLBodyElement|/body`a1`e]
```
...or in [node][node] with any standard-compliant DOM implementation
(e.g. [jsdom][jsdom]).
[node]: https://nodejs.org/en/
[jsdom]: https://github.com/tmpvar/jsdom
```javascript
var WSON = require("wson").Wson;
var domConnectors = require("wson-dom-connector");
var jsdom = require("jsdom");
var document = jsdom.jsdom("<body></body>")
var wson = new WSON({
connectors: domConnectors(document.defaultView)
});
console.log(wson.stringify(document.body));
// [:HTMLBodyElement|/body`a1`e]
```
## API
Please refer to [wson's documentation][wson] for further details.
## License
Copyright © 2016 - 2019 Maciej Chałapuk.
Released under [MIT license](LICENSE).