Extend
Methods
You can create custom helpers by creating Ceibo
descriptors. (Ceibo
is a small library for parsing trees. You can check it out here).
findOne
addon/-private/extend/find-one.js:38-44
Parameters
pageObjectNode
Ceibo Node of the treetargetSelector
string Specific CSS selectoroptions
Object Additional optionsoptions.resetScope
boolean Do not use inherited scopeoptions.contains
string Filter by using :contains(‘foo’) pseudo-classoptions.last
boolean Filter by using :last pseudo-classoptions.visible
boolean Filter by using :visible pseudo-classoptions.testContainer
String Context where to search elements in the DOMoptions.at
number Filter by index using :eq(x) pseudo-classoptions.pageObjectKey
String Used in the error message when the element is not found
Examples
import { findOne } from 'ember-cli-page-object/extend';
import { getter } from 'ember-cli-page-object/macros';
export default function isDisabled(selector, options = {}) {
return getter(function() {
return findOne(this, selector, options).disabled;
});
}
findMany
addon/-private/extend/find-many.js:38-44
Parameters
pageObjectNode
Ceibo Node of the treetargetSelector
string Specific CSS selectoroptions
Object Additional optionsoptions.resetScope
boolean Do not use inherited scopeoptions.contains
string Filter by using :contains(‘foo’) pseudo-classoptions.visible
boolean Filter by using :visible pseudo-classoptions.testContainer
String Context where to search elements in the DOMoptions.pageObjectKey
String Used in the error message when the element is not found
Examples
import { findMany } from 'ember-cli-page-object/extend';
import { getter } from 'ember-cli-page-object/macros';
export default function count(selector, options = {}) {
return getter(function() {
return findMany(this, selector, options).length;
});
}
findElementWithAssert
addon/-private/extend/find-element-with-assert.js:38-44
Note: in the v2 series we are going to deprecate findElementWithAssert
. It’s recommended to migrate to use findOne
instead.
In order to ease the migration, you may find useful the find-one
codemod to perform the migration.
Parameters
pageObjectNode
Ceibo Node of the treetargetSelector
string Specific CSS selectoroptions
Object Additional optionsoptions.resetScope
boolean Do not use inherited scopeoptions.contains
string Filter by using :contains(‘foo’) pseudo-classoptions.last
boolean Filter by using :last pseudo-classoptions.visible
boolean Filter by using :visible pseudo-classoptions.multiple
boolean Specify if built selector can match multiple elements.options.testContainer
String Context where to search elements in the DOMoptions.at
number Filter by index using :eq(x) pseudo-classoptions.pageObjectKey
String Used in the error message when the element is not found
Examples
import { findElementWithAssert } from 'ember-cli-page-object/extend';
import { getter } from 'ember-cli-page-object/macros';
export default function count(selector, options = {}) {
return getter(function() {
return findElementWithAssert(this, selector, options).is(':disabled');
});
}
findElement
addon/-private/extend/find-element.js:36-42
Note: in the v2 series we are going to deprecate findElement
. It’s recommended to migrate to use findMany
instead.
Parameters
pageObjectNode
Ceibo Node of the treetargetSelector
string Specific CSS selectoroptions
Object Additional optionsoptions.resetScope
boolean Do not use inherited scopeoptions.contains
string Filter by using :contains(‘foo’) pseudo-classoptions.at
number Filter by index using :eq(x) pseudo-classoptions.last
boolean Filter by using :last pseudo-classoptions.visible
boolean Filter by using :visible pseudo-classoptions.multiple
boolean Specify if built selector can match multiple elements.options.testContainer
String Context where to search elements in the DOM
Examples
import { findElement } from 'ember-cli-page-object/extend';
import { getter } from 'ember-cli-page-object/macros';
export default function isDisabled(selector, options = {}) {
return getter(function() {
return findElement(this, selector, options).is(':disabled');
});
}
Usage Example:
const page = create({
scope: '.page',
isAdmin: disabled('#override-name')
});
page.isAdmin
will look for elements in the DOM that match “.page
#override-name” and check if they are disabled.