Skip to content

d0lfin/page-elements-js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

page-elements-js

Build status

Realisation of java HtmlElements for nodejs.

install

With npm do:

npm install page-elements-js

usage

Create json file with structure of your page, for example "page.json":

{
  "tagName": "body",
  "header": {
    "json": "elements/header.json"
  },
  "body": {
    "className": "content",
    "buttons": [{
      "json": "elements/button.json"
    }]
  },
  "footer": {
    "cssSelector": "#footer",
    "links": [{
      "xpath": ".//div[contains(@class, 'link')]"
    }]
  }
}

Near this file create folder "elements" with files "header.json" and "button.json". For example "header.json":

{
  "id": "header",
  "logo": {
    "tagName": "img"
  },
  "form": {
    "tagName": "form",
    "login": {
      "name": "login",
    },
    "password": {
      "name": "password",
    },
    "button": {ix readme
      "tagName": "button"
    }
  }
}

Now create file with your test, for example "test.js":

var PageElement = require('page-elements-js'),
    wd = require('webdriver-sync'),
    driver = new wd.PhantomJSDriver(),
    file = 'page.json',
    page = new PageElement(driver, file);

driver.manage().timeouts().implicitlyWait(5, wd.TimeUnit.SECONDS);
driver.get('http://yourhost');

Next, if you want to send keys to password field in your login form, you need to write next string:

page().header().form().password().sendKeys('some text');

If you want to click on each link in your footer write:

var links = page().footer().links();
links.forEach(function(link) {
  link.click();
});

how it works

When you create instance of PageElement class, it read tree of your page structure and try to find next keywords: className, cssSelector, id, linkText, name, partialLinkText, tagName, xpath, json. Each of this using by webdriver for "findElement" method like selector, except last word - "json". This word using for include other files with html structure in current tree. All other words using like names for child elements. Also you can set array for child field, then webdriver use method "findElements" for this child.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published