get-xpath
v3.2.0
Published
Get the XPath from an HTML element
Downloads
38,831
Readme
get-xpath
📑 Extract the XPath of an HTML element
- Works with browsers, NodeJS and DenoJS (JavaScript 5 and TypeScript)
- No external dependencies
- Unit-tested
- Semantic Versioning
Install
npm i get-xpath
API
function getXPath( element: HTMLElement, options?: Partial< Options > ): string;
Where options
is an optional object containing:
| name | type | description |
|------------|---------|---------------------------------------|
| ignoreId
| boolean | Do not take elements' ID into account |
Example:
<html>
<body>
<div id="x" ></div>
<script>
const div = document.getElementById( 'x' );
const xpath1 = getXPath( div ); // returns '//*[@id="x"]'
const xpath2 = getXPath( div, { ignoreId: true } ); // returns '/html/body/div'
</script>
</body>
</html>
Usage
Notes:
- On Node or Deno, you have to provide a way to accessing or emulating the DOM. You can use JSDOM (or any other library) for that.
- When using TypeScript, add the value
"dom"
to the property"lib"
of yourtsconfig.json
. Otherwise you will probably get errors.
Browser
Global:
<script crossorigin src="https://unpkg.com/get-xpath" >
<script>
console.log(
getXPath( document.getElementById( 'foo' ) )
);
</script>
ESM:
<script type="module" >
import getXPath from 'https://unpkg.com/get-xpath/index.esm.js';
console.log(
getXPath( document.getElementById( 'foo' ) )
);
</script>
NodeJS
/// <reference lib="dom" />
const getXPath = require('get-xpath');
console.log(
getXPath( document.getElementById( 'foo' ) )
);
Deno
/// <reference lib="dom" />
import getXPath from 'https://unpkg.com/get-xpath/index.esm.js';
console.log(
getXPath( document.getElementById( 'foo' ) )
);