Methods

Table of Contents

isPresent

Validates if any element matching the target selector is rendered in the DOM.

isPresent vs. isVisible:

  • Both validate that an element matching the target selector can be found in the DOM
  • isVisible additionally validates that all matching elements are visible

Some uses cases for isPresent over isVisible:

  • To check for the presence of a tag that is never visible in the DOM (e.g. <meta>).
  • To validate that, even though an element may not currently be visible, it is still in the DOM.
  • To validate that an element has not merely been hidden but has in fact been removed from the DOM.

Parameters

  • selector string CSS selector of the element to check
  • userOptions (optional, default {})
  • options Object Additional options

    • options.scope string Nests provided scope within parent’s scope
    • options.at number Reduce the set of matched elements to the one at the specified index
    • options.resetScope boolean Override parent’s scope
    • options.testContainer string Context where to search elements in the DOM

Examples

// Lorem <span>ipsum</span>

import { create, isPresent } from 'ember-cli-page-object';

const page = create({
  spanIsPresent: isPresent('span')
});

assert.ok(page.spanIsPresent);
// <head>
//   <meta name='robots' content='noindex'>
// </head>

import { create, isPresent } from 'ember-cli-page-object';

const page = create({
  notIndexed: isPresent(`meta[name='robots'][content='noindex']`, {
    testContainer: 'head'
  })
});

assert.ok(page.notIndexed);
// Lorem <strong>ipsum</strong>

import { create, isPresent } from 'ember-cli-page-object';

const page = create({
  spanIsPresent: isPresent('span')
});

// returns false when element doesn't exist in DOM
assert.notOk(page.spanIsPresent);
  • Throws any Will throw an error if multiple elements are matched by selector

Returns Descriptor