xpath-converter

Convert words to Xpath.

Usage no npm install needed!

<script type="module">
  import xpathConverter from 'https://cdn.skypack.dev/xpath-converter';
</script>

README

Purpose

This is a converter that can convert location words to XPath.

Installation

$ npm i xpath-converter --save

Usage

1. Create your own page class to extend Locator, and add your location type as parameter:
    const xpathConverter = require('xpath-converter');
    
    class CustomPage extends xpathConverter.adapter.Locator {
      super() {
      }
    
      'page'({ name, type, index }) { return `header[h6="${name}"]["${index}"]`; }
      
      'section'({ name, type, index }) { return `setion[h2="${name}"]["${index}"]`; }
      
      'input'({ name, type, index }) { return `label[text()="${name}"]/following/::input["${index}"]`; }

      execute(type) {
        const locator = new MainPage();
        return locator[type] && locator[type](...[].slice.call(arguments, 1));
      }
    }

2. Call the function createElement with your own class:
    var pageClass = require('./CustomPage');
    var element = new xpathConverter.adapter.Element();
    var xpath = element.createElement(name, type, moreInfo, pageClass);

Words introduce

There are four parts in a part of locator words.

direction: in, behind, in-front-of, in-child-of (Do not need to add it at beginning) order: 1st, 2nd, 3rd, 16th ... (Put 'the' for default) location type: id, input, checkbox ... (This is defined in your own page class) name: "customer name", "number" ... (The text in your page)

e.g 1st input "Customer Name" in 3rd section "Customer Information" behind the page "Customer" Xpath output: //header[h6="Customer"]["1"]/following::setion[h2="Customer Information"]["3"]/descendant::label[text()="Customer Name"]/following/::input["1"]