in robot-server-plugin/src/main/resources/static/xpathEditor.js [134:156]
generate(element) {
const allXpaths = this._collect(element)
let xpaths = allXpaths.filter((xpath) => this._isGoodAndUnique(xpath, element))
if (xpaths.length === 0) {
const uniqueChildrenXpath = this._findUniqueChildren(element)
if (uniqueChildrenXpath) {
xpaths = allXpaths
.map((x) => new PrioritizedXpath(x.xpath + `[.${uniqueChildrenXpath.xpath}]`, x.priority))
.filter((xpath) => this._isGoodAndUnique(xpath, element))
}
}
if (xpaths.length === 0) {
const uniqueParentXpath = this._findUniqueParent(element)
if (uniqueParentXpath) {
xpaths = allXpaths
.map((x) => new PrioritizedXpath(uniqueParentXpath.xpath + x.xpath, x.priority))
.filter((xpath) => this._isGoodAndUnique(xpath, element))
xpaths = xpaths.flatMap((x) => this._generateMiddleSkippedPaths(x))
.filter((xpath) => this._isGoodAndUnique(xpath, element))
}
}
return xpaths
}