siesta-lite
Version:
Stress-free JavaScript unit testing and functional testing tool, works in NodeJS and browsers
46 lines (34 loc) • 1.43 kB
JavaScript
/*
Siesta 5.6.1
Copyright(c) 2009-2022 Bryntum AB
https://bryntum.com/contact
https://bryntum.com/products/siesta/license
*/
Class('Ariadne.DomQueryFinder.Identifier.Contains', {
isa : Ariadne.QueryFinder.Identifier,
does : Ariadne.DomQueryFinder.Role.DomHelper,
has : {
maxCharsForContainsSelector : 30
},
methods : {
identify : function (target, root, maze) {
var attributes = this.attributes
var segments = []
// SVG elements in IE does not have ".children"
var children = target.children || target.childNodes
if (children.length == 0 || (children.length == 1 && !children[ 0 ].innerHTML)) {
var text = target.textContent.trim()
if (text.length > 1)
if (text.length <= this.maxCharsForContainsSelector)
return {
query : ':textEquals(' + this.escapeDomSelector(text) + ')'
}
else
return {
query : ':contains(' + this.escapeDomSelector(text.substr(0, this.maxCharsForContainsSelector)) + ')'
}
}
return null
}
}
});