From e41465805614e76c8f51bd1b55d6d395b8190c78 Mon Sep 17 00:00:00 2001 From: Corentin Barreau Date: Sun, 3 Nov 2019 13:21:23 +0100 Subject: [PATCH] Add: childSelector --- brozzler/js-templates/umbraBehavior.js.j2 | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/brozzler/js-templates/umbraBehavior.js.j2 b/brozzler/js-templates/umbraBehavior.js.j2 index 7931a62..cb8c194 100644 --- a/brozzler/js-templates/umbraBehavior.js.j2 +++ b/brozzler/js-templates/umbraBehavior.js.j2 @@ -33,6 +33,7 @@ class UmbraBehavior { // should match older default and simpleclicks behavior, and more var k = this.index; var selector = this.actions[k].selector; + var childSelector = this.actions[k].childSelector; var repeatSameElement = this.actions[k].repeatSameElement ? this.actions[k].repeatSameElement : false; var firstMatchOnly = this.actions[k].firstMatchOnly ? this.actions[k].firstMatchOnly : false; var action = this.actions[k].do ? this.actions[k].do : 'click'; @@ -90,6 +91,17 @@ class UmbraBehavior { var where = this.aboveBelowOrOnScreen(doTargets[i]); if (where == 0) { this.doTarget(doTargets[i], action); + if (childSelector) { + var childSelectors = documents[j].querySelectorAll(childSelector); + while (childSelectors.length > 0) { + for (var i = 0; i < childSelectors.length; i++) { + if (this.isVisible(childSelectors[i])) { + childSelectors[i].click(); + } + } + childSelectors = documents[j].querySelectorAll(childSelector); + } + } didSomething = true; break; } else if (where > 0) {