Allow clicking on already clicked element to continue in behaviors if click_until_hard_timeout is set to true

This commit is contained in:
Hunter Stern 2016-02-05 10:00:24 -08:00
parent b9973c7cae
commit 2ed96f9b59
3 changed files with 13 additions and 3 deletions

View File

@ -8,6 +8,7 @@ var umbraBehavior = {
var somethingLeftBelow = false;
var somethingLeftAbove = false;
var cssSelector = "${click_css_selector}";
var clickUntilTimeout = "${click_until_hard_timeout}";
var iframes = document.querySelectorAll("iframe");
var documents = Array(iframes.length + 1);
@ -22,7 +23,7 @@ var umbraBehavior = {
var clickTargets = documents[j].querySelectorAll(cssSelector);
for ( var i = 0; i < clickTargets.length; i++) {
if (clickTargets[i].umbraClicked) {
if (clickTargets[i].umbraClicked && !clickUntilTimeout) {
continue;
}

View File

@ -32,7 +32,11 @@ class Behavior:
behavior_js = os.path.sep.join(__file__.split(os.path.sep)[:-1] + ["behaviors.d"] + [behavior["behavior_js"]])
behavior["script"] = open(behavior_js, encoding="utf-8").read()
elif "click_css_selector" in behavior:
behavior["script"] = simpleclicks_js_template.substitute(click_css_selector=behavior["click_css_selector"])
if "click_until_hard_timeout" in behavior:
click_until_hard_timeout_value=behavior["click_until_hard_timeout"]
else:
click_until_hard_timeout_value = False
behavior["script"] = simpleclicks_js_template.substitute(click_css_selector=behavior["click_css_selector"], click_until_hard_timeout=click_until_hard_timeout_value)
return Behavior._behaviors

View File

@ -48,6 +48,11 @@ behaviors:
url_regex: '^https?://(?:www\.)?youtube.com/.*$'
click_css_selector: span.load-more-text
request_idle_timeout_sec: 10
- # https://webarchive.jira.com/browse/ARI-4725
url_regex: '^https?://(?:www\.)?moma.org/.*$'
click_css_selector: button[data-more-results-bottom-button]
click_until_hard_timeout: True
request_idle_timeout_sec: 10
- # default fallback brhavior
url_regex: '^.*$'
request_idle_timeout_sec: 10