Predicates
Methods
contains
addon/predicates/contains.js:83-97
Returns a boolean representing whether an element or a set of elements contains the specified text.
Parameters
selector
string CSS selector of the element to checkoptions
Object Additional optionsoptions.scope
string Nests provided scope within parent’s scopeoptions.at
number Reduce the set of matched elements to the one at the specified indexoptions.resetScope
boolean Override parent’s scopeoptions.multiple
boolean Check if all elements matched by selector contain the subtextoptions.testContainer
String Context where to search elements in the DOM
Examples
// Lorem <span>ipsum</span>
const page = PageObject.create({
spanContains: PageObject.contains('span')
});
assert.ok(page.spanContains('ipsum'));
// <span>lorem</span>
// <span>ipsum</span>
// <span>dolor</span>
const page = PageObject.create({
spansContain: PageObject.contains('span', { multiple: true })
});
// not all spans contain 'lorem'
assert.notOk(page.spansContain('lorem'));
// <span>super text</span>
// <span>regular text</span>
const page = PageObject.create({
spansContain: PageObject.contains('span', { multiple: true })
});
// all spans contain 'text'
assert.ok(page.spanContains('text'));
// <div><span>lorem</span></div>
// <div class="scope"><span>ipsum</span></div>
// <div><span>dolor</span></div>
const page = PageObject.create({
spanContains: PageObject.contains('span', { scope: '.scope' })
});
assert.notOk(page.spanContains('lorem'));
assert.ok(page.spanContains('ipsum'));
// <div><span>lorem</span></div>
// <div class="scope"><span>ipsum</span></div>
// <div><span>dolor</span></div>
const page = PageObject.create({
scope: '.scope',
spanContains: PageObject.contains('span')
});
assert.notOk(page.spanContains('lorem'));
assert.ok(page.spanContains('ipsum'));
Returns Descriptor
hasClass
addon/predicates/has-class.js:84-96
Validates if an element or a set of elements have a given CSS class.
Parameters
cssClass
string CSS class to be validatedselector
string CSS selector of the element to checkoptions
Object Additional optionsoptions.scope
string Nests provided scope within parent’s scopeoptions.at
number Reduce the set of matched elements to the one at the specified indexoptions.resetScope
boolean Override parent’s scopeoptions.multiple
boolean Check if all elements matched by selector have the CSS classoptions.testContainer
String Context where to search elements in the DOM
Examples
// <em class="lorem"></em><span class="success">Message!</span>
const page = PageObject.create({
messageIsSuccess: PageObject.hasClass('success', 'span')
});
assert.ok(page.messageIsSuccess);
// <span class="success"></span>
// <span class="error"></span>
const page = PageObject.create({
messagesAreSuccessful: PageObject.hasClass('success', 'span', { multiple: true })
});
assert.notOk(page.messagesAreSuccessful);
// <span class="success"></span>
// <span class="success"></span>
const page = PageObject.create({
messagesAreSuccessful: PageObject.hasClass('success', 'span', { multiple: true })
});
assert.ok(page.messagesAreSuccessful);
// <div>
// <span class="lorem"></span>
// </div>
// <div class="scope">
// <span class="ipsum"></span>
// </div>
const page = PageObject.create({
spanHasClass: PageObject.hasClass('ipsum', 'span', { scope: '.scope' })
});
assert.ok(page.spanHasClass);
// <div>
// <span class="lorem"></span>
// </div>
// <div class="scope">
// <span class="ipsum"></span>
// </div>
const page = PageObject.create({
scope: '.scope',
spanHasClass: PageObject.hasClass('ipsum', 'span')
});
assert.ok(page.spanHasClass);
Returns Descriptor
isHidden
addon/predicates/is-hidden.js:89-101
Validates if an element or set of elements are hidden.
Parameters
selector
string CSS selector of the element to checkoptions
Object Additional optionsoptions.scope
string Nests provided scope within parent’s scopeoptions.at
number Reduce the set of matched elements to the one at the specified indexoptions.resetScope
boolean Override parent’s scopeoptions.multiple
boolean Check if all elements matched by selector are hiddenoptions.testContainer
String Context where to search elements in the DOM
Examples
// Lorem <span style="display:none">ipsum</span>
const page = PageObject.create({
spanIsHidden: PageObject.isHidden('span')
});
assert.ok(page.spanIsHidden);
// <span>ipsum</span>
// <span style="display:none">dolor</span>
const page = create({
spansAreHidden: PageObject.isHidden('span', { multiple: true })
});
// not all spans are hidden
assert.notOk(page.spansAreHidden);
// <span style="display:none">dolor</span>
// <span style="display:none">dolor</span>
const page = create({
spansAreHidden: PageObject.isHidden('span', { multiple: true })
});
// all spans are hidden
assert.ok(page.spansAreHidden);
// Lorem <strong>ipsum</strong>
const page = PageObject.create({
spanIsHidden: PageObject.isHidden('span')
});
// returns true when element doesn't exist in DOM
assert.ok(page.spanIsHidden);
// <div><span>lorem</span></div>
// <div class="scope"><span style="display:none">ipsum</span></div>
// <div><span>dolor</span></div>
const page = PageObject.create({
scopedSpanIsHidden: PageObject.isHidden('span', { scope: '.scope' })
});
assert.ok(page.scopedSpanIsHidden);
// <div><span>lorem</span></div>
// <div class="scope"><span style="display:none">ipsum</span></div>
// <div><span>dolor</span></div>
const page = PageObject.create({
scope: '.scope',
scopedSpanIsHidden: PageObject.isHidden('span')
});
assert.ok(page.scopedSpanIsHidden);
Returns Descriptor
isVisible
addon/predicates/is-visible.js:95-111
Validates if an element or set of elements are visible.
Parameters
selector
string CSS selector of the element to checkoptions
Object Additional optionsoptions.scope
string Nests provided scope within parent’s scopeoptions.at
number Reduce the set of matched elements to the one at the specified indexoptions.resetScope
boolean Override parent’s scopeoptions.multiple
boolean Check if all elements matched by selector are visibleoptions.testContainer
String Context where to search elements in the DOM
Examples
// Lorem <span>ipsum</span>
const page = PageObject.create({
spanIsVisible: PageObject.isVisible('span')
});
assert.ok(page.spanIsVisible);
// <span>ipsum</span>
// <span style="display:none">dolor</span>
const page = PageObject.create({
spansAreVisible: PageObject.isVisible('span', { multiple: true })
});
// not all spans are visible
assert.notOk(page.spansAreVisible);
// <span>ipsum</span>
// <span>dolor</span>
const page = PageObject.create({
spansAreVisible: PageObject.isVisible('span', { multiple: true })
});
// all spans are visible
assert.ok(page.spansAreVisible);
// Lorem <strong>ipsum</strong>
const page = PageObject.create({
spanIsVisible: PageObject.isHidden('span')
});
// returns false when element doesn't exist in DOM
assert.notOk(page.spanIsVisible);
// <div>
// <span style="display:none">lorem</span>
// </div>
// <div class="scope">
// <span>ipsum</span>
// </div>
const page = PageObject.create({
spanIsVisible: PageObject.isHidden('span', { scope: '.scope' })
});
assert.ok(page.spanIsVisible);
// <div>
// <span style="display:none">lorem</span>
// </div>
// <div class="scope">
// <span>ipsum</span>
// </div>
const page = PageObject.create({
scope: '.scope',
spanIsVisible: PageObject.isHidden('span')
});
assert.ok(page.spanIsVisible);
Returns Descriptor
notHasClass
addon/predicates/not-has-class.js:86-98
Validates if an element or a set of elements don’t have a given CSS class.
Parameters
cssClass
string CSS class to be validatedselector
string CSS selector of the element to checkoptions
Object Additional optionsoptions.scope
string Nests provided scope within parent’s scopeoptions.at
number Reduce the set of matched elements to the one at the specified indexoptions.resetScope
boolean Override parent’s scopeoptions.multiple
boolean Check if all elements matched by selector don’t have the CSS classoptions.testContainer
String Context where to search elements in the DOM
Examples
// <em class="lorem"></em><span class="success">Message!</span>
const page = PageObject.create({
messageIsSuccess: PageObject.notHasClass('error', 'span')
});
assert.ok(page.messageIsSuccess);
// <span class="success"></span>
// <span class="error"></span>
const page = PageObject.create({
messagesAreSuccessful: PageObject.notHasClass('error', 'span', { multiple: true })
});
// one span has error class
assert.notOk(page.messagesAreSuccessful);
// <span class="success"></span>
// <span class="success"></span>
const page = PageObject.create({
messagesAreSuccessful: PageObject.notHasClass('error', 'span', { multiple: true })
});
// no spans have error class
assert.ok(page.messagesAreSuccessful);
// <div>
// <span class="lorem"></span>
// </div>
// <div class="scope">
// <span class="ipsum"></span>
// </div>
const page = PageObject.create({
spanNotHasClass: PageObject.notHasClass('lorem', 'span', { scope: '.scope' })
});
assert.ok(page.spanNotHasClass);
// <div>
// <span class="lorem"></span>
// </div>
// <div class="scope">
// <span class="ipsum"></span>
// </div>
const page = PageObject.create({
scope: '.scope',
spanNotHasClass: PageObject.notHasClass('lorem', 'span')
});
assert.ok(page.spanNotHasClass);
Returns Descriptor