@duckduckgo/autoconsent 14.67.0 → 14.69.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +36 -11
- package/CHANGELOG.md +39 -0
- package/data/coverage.json +5846 -2663
- package/dist/addon-firefox/background.bundle.js +0 -2
- package/dist/addon-firefox/compact-rules.json +1 -1
- package/dist/addon-firefox/content.bundle.js +17 -5
- package/dist/addon-firefox/manifest.json +1 -1
- package/dist/addon-firefox/rules.json +1 -1
- package/dist/addon-mv3/background.bundle.js +0 -2
- package/dist/addon-mv3/compact-rules.json +1 -1
- package/dist/addon-mv3/content.bundle.js +17 -5
- package/dist/addon-mv3/manifest.json +1 -1
- package/dist/addon-mv3/rules.json +1 -1
- package/dist/autoconsent.cjs.js +17 -5
- package/dist/autoconsent.esm.js +17 -5
- package/dist/autoconsent.extra.cjs.js +17 -5
- package/dist/autoconsent.extra.esm.js +17 -5
- package/dist/autoconsent.playwright.js +17 -5
- package/dist/types/eval-snippets.d.ts +0 -2
- package/dist/types/heuristics.d.ts +1 -0
- package/docs/rule-syntax.md +32 -1
- package/lib/eval-snippets.ts +0 -3
- package/lib/heuristics.ts +18 -3
- package/package.json +1 -1
- package/rules/autoconsent/elsevier-pure.json +31 -0
- package/rules/autoconsent/facebook.json +21 -7
- package/rules/autoconsent/fullertonhotels.com.json +37 -0
- package/rules/autoconsent/geni.com.json +8 -5
- package/rules/autoconsent/remarkable.com.json +6 -27
- package/rules/autoconsent/unicourt.json +5 -5
- package/rules/compact-rules.json +1 -1
- package/rules/generated/auto_AU_flysaa.com_qsm.json +10 -9
- package/rules/generated/auto_DE_immobilien.sparkasse.de_zj7.json +10 -10
- package/rules/generated/auto_GB_www2.hm.com_0.json +15 -6
- package/rules/rules.json +1 -1
- package/tests/elsevier-pure.spec.ts +11 -0
- package/tests/fullertonhotels.com.spec.ts +6 -0
- package/tests/generated/auto_GB_www2.hm.com_0.spec.ts +16 -0
- package/tests-wtr/heuristics/get-actionable-popups.html +24 -0
- package/tests-wtr/heuristics/get-actionable-popups.ts +36 -0
- package/tests-wtr/heuristics/heuristics-utils.test.ts +43 -0
- package/rules/autoconsent/mediavine.json +0 -17
- package/rules/autoconsent/national-lottery-co-uk.json +0 -11
- package/rules/autoconsent/ouraring.json +0 -36
- package/rules/generated/auto_AU_discover.utas.edu.au_k2n.json +0 -37
- package/rules/generated/auto_AU_experts.deakin.edu.au_0kw.json +0 -40
- package/rules/generated/auto_AU_experts.griffith.edu.au_oi0.json +0 -37
- package/rules/generated/auto_AU_fullertonhotels.com_y46.json +0 -40
- package/rules/generated/auto_AU_profiles.uts.edu.au_ouv.json +0 -37
- package/rules/generated/auto_AU_scholars.latrobe.edu.au_li6.json +0 -40
- package/rules/generated/auto_CA_discover.research.utoronto.ca_vtf.json +0 -40
- package/rules/generated/auto_CA_remarkable.com_kt9.json +0 -40
- package/rules/generated/auto_DE_www2.hm.com_beo.json +0 -40
- package/rules/generated/auto_GB_profiles.ucl.ac.uk_lpo.json +0 -40
- package/tests/generated/auto_AU_discover.utas.edu.au_k2n.spec.ts +0 -6
- package/tests/generated/auto_AU_experts.deakin.edu.au_0kw.spec.ts +0 -6
- package/tests/generated/auto_AU_experts.griffith.edu.au_oi0.spec.ts +0 -6
- package/tests/generated/auto_AU_fullertonhotels.com_y46.spec.ts +0 -6
- package/tests/generated/auto_AU_profiles.uts.edu.au_ouv.spec.ts +0 -6
- package/tests/generated/auto_AU_scholars.latrobe.edu.au_li6.spec.ts +0 -6
- package/tests/generated/auto_CA_discover.research.utoronto.ca_vtf.spec.ts +0 -6
- package/tests/generated/auto_CA_remarkable.com_kt9.spec.ts +0 -2
- package/tests/generated/auto_DE_www2.hm.com_beo.spec.ts +0 -6
- package/tests/generated/auto_GB_profiles.ucl.ac.uk_lpo.spec.ts +0 -6
- package/tests/mediavine.spec.ts +0 -5
- package/tests/national-lottery.spec.ts +0 -5
- package/tests/ouraring.spec.ts +0 -3
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import generateCMPTests from '../playwright/runner';
|
|
2
|
+
|
|
3
|
+
generateCMPTests('elsevier-pure', [
|
|
4
|
+
'https://discover.utas.edu.au/',
|
|
5
|
+
'https://experts.deakin.edu.au/',
|
|
6
|
+
'https://experts.griffith.edu.au/',
|
|
7
|
+
'https://profiles.uts.edu.au/',
|
|
8
|
+
'https://scholars.latrobe.edu.au/',
|
|
9
|
+
'https://profiles.ucl.ac.uk/',
|
|
10
|
+
'https://discover.research.utoronto.ca/',
|
|
11
|
+
]);
|
|
@@ -4,3 +4,19 @@ generateCMPTests('auto_GB_www2.hm.com_0', ['https://www2.hm.com/en_gb/index.html
|
|
|
4
4
|
testSelfTest: false,
|
|
5
5
|
onlyRegions: ['GB'],
|
|
6
6
|
});
|
|
7
|
+
generateCMPTests('auto_GB_www2.hm.com_0', ['https://www2.hm.com/de_de/index.html'], {
|
|
8
|
+
testOptIn: false,
|
|
9
|
+
testSelfTest: false,
|
|
10
|
+
onlyRegions: ['DE'],
|
|
11
|
+
});
|
|
12
|
+
generateCMPTests('auto_GB_www2.hm.com_0', ['https://www2.hm.com/en_us/index.html'], {
|
|
13
|
+
testOptIn: false,
|
|
14
|
+
testSelfTest: false,
|
|
15
|
+
onlyRegions: ['US'],
|
|
16
|
+
});
|
|
17
|
+
generateCMPTests('auto_GB_www2.hm.com_0', ['https://www2.hm.com/en_us/index.html'], {
|
|
18
|
+
testOptIn: false,
|
|
19
|
+
testSelfTest: false,
|
|
20
|
+
onlyRegions: ['US'],
|
|
21
|
+
mobile: true,
|
|
22
|
+
});
|
|
@@ -20,6 +20,12 @@
|
|
|
20
20
|
position: sticky;
|
|
21
21
|
top: 0;
|
|
22
22
|
}
|
|
23
|
+
.popup.dialog-pos {
|
|
24
|
+
position: absolute;
|
|
25
|
+
}
|
|
26
|
+
dialog.popup {
|
|
27
|
+
position: absolute;
|
|
28
|
+
}
|
|
23
29
|
</style>
|
|
24
30
|
</head>
|
|
25
31
|
<body>
|
|
@@ -68,5 +74,23 @@
|
|
|
68
74
|
<button>Settings</button>
|
|
69
75
|
<button>Learn More</button>
|
|
70
76
|
</div>
|
|
77
|
+
|
|
78
|
+
<div id="popup-role-dialog" class="popup dialog-pos" role="dialog">
|
|
79
|
+
<p>We use cookies to improve your experience.</p>
|
|
80
|
+
<button>Accept All</button>
|
|
81
|
+
<button>Reject All</button>
|
|
82
|
+
</div>
|
|
83
|
+
|
|
84
|
+
<div id="popup-aria-modal" class="popup dialog-pos" aria-modal="true">
|
|
85
|
+
<p>We use cookies to improve your experience.</p>
|
|
86
|
+
<button>Accept All</button>
|
|
87
|
+
<button>Reject All</button>
|
|
88
|
+
</div>
|
|
89
|
+
|
|
90
|
+
<dialog id="popup-dialog-element" class="popup">
|
|
91
|
+
<p>We use cookies to improve your experience.</p>
|
|
92
|
+
<button>Accept All</button>
|
|
93
|
+
<button>Reject All</button>
|
|
94
|
+
</dialog>
|
|
71
95
|
</body>
|
|
72
96
|
</html>
|
|
@@ -67,6 +67,42 @@ describe('getActionablePopups', () => {
|
|
|
67
67
|
|
|
68
68
|
expect(popups.length).to.equal(0);
|
|
69
69
|
});
|
|
70
|
+
|
|
71
|
+
it('finds popup with role="dialog"', () => {
|
|
72
|
+
showPopup('popup-role-dialog');
|
|
73
|
+
|
|
74
|
+
const popups = getActionablePopups();
|
|
75
|
+
|
|
76
|
+
expect(popups.length).to.equal(1);
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
it('finds popup with aria-modal="true"', () => {
|
|
80
|
+
showPopup('popup-aria-modal');
|
|
81
|
+
|
|
82
|
+
const popups = getActionablePopups();
|
|
83
|
+
|
|
84
|
+
expect(popups.length).to.equal(1);
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
it('finds open <dialog> element', () => {
|
|
88
|
+
const dialog = document.getElementById('popup-dialog-element') as HTMLDialogElement;
|
|
89
|
+
dialog.show();
|
|
90
|
+
dialog.classList.add('visible');
|
|
91
|
+
|
|
92
|
+
const popups = getActionablePopups();
|
|
93
|
+
|
|
94
|
+
expect(popups.length).to.equal(1);
|
|
95
|
+
dialog.close();
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
it('ignores closed <dialog> element', () => {
|
|
99
|
+
const dialog = document.getElementById('popup-dialog-element') as HTMLDialogElement;
|
|
100
|
+
dialog.classList.add('visible');
|
|
101
|
+
|
|
102
|
+
const popups = getActionablePopups();
|
|
103
|
+
|
|
104
|
+
expect(popups.length).to.equal(0);
|
|
105
|
+
});
|
|
70
106
|
});
|
|
71
107
|
|
|
72
108
|
describe('button classification', () => {
|
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
isDisabled,
|
|
8
8
|
excludeContainers,
|
|
9
9
|
getButtonData,
|
|
10
|
+
isDialogLikeElement,
|
|
10
11
|
} from '../../lib/heuristics';
|
|
11
12
|
|
|
12
13
|
describe('checkHeuristicPatterns', () => {
|
|
@@ -151,6 +152,48 @@ describe('isDisabled', () => {
|
|
|
151
152
|
});
|
|
152
153
|
});
|
|
153
154
|
|
|
155
|
+
describe('isDialogLikeElement', () => {
|
|
156
|
+
it('returns true for open dialog element', () => {
|
|
157
|
+
const dialog = document.createElement('dialog');
|
|
158
|
+
dialog.setAttribute('open', '');
|
|
159
|
+
expect(isDialogLikeElement(dialog)).to.be.true;
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
it('returns false for closed dialog element', () => {
|
|
163
|
+
const dialog = document.createElement('dialog');
|
|
164
|
+
expect(isDialogLikeElement(dialog)).to.be.false;
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
it('returns true for element with role="dialog"', () => {
|
|
168
|
+
const div = document.createElement('div');
|
|
169
|
+
div.setAttribute('role', 'dialog');
|
|
170
|
+
expect(isDialogLikeElement(div)).to.be.true;
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
it('returns true for element with aria-modal="true"', () => {
|
|
174
|
+
const div = document.createElement('div');
|
|
175
|
+
div.setAttribute('aria-modal', 'true');
|
|
176
|
+
expect(isDialogLikeElement(div)).to.be.true;
|
|
177
|
+
});
|
|
178
|
+
|
|
179
|
+
it('returns false for aria-modal="false"', () => {
|
|
180
|
+
const div = document.createElement('div');
|
|
181
|
+
div.setAttribute('aria-modal', 'false');
|
|
182
|
+
expect(isDialogLikeElement(div)).to.be.false;
|
|
183
|
+
});
|
|
184
|
+
|
|
185
|
+
it('returns false for plain div', () => {
|
|
186
|
+
const div = document.createElement('div');
|
|
187
|
+
expect(isDialogLikeElement(div)).to.be.false;
|
|
188
|
+
});
|
|
189
|
+
|
|
190
|
+
it('returns false for element with unrelated role', () => {
|
|
191
|
+
const div = document.createElement('div');
|
|
192
|
+
div.setAttribute('role', 'button');
|
|
193
|
+
expect(isDialogLikeElement(div)).to.be.false;
|
|
194
|
+
});
|
|
195
|
+
});
|
|
196
|
+
|
|
154
197
|
describe('excludeContainers', () => {
|
|
155
198
|
it('returns empty array for empty input', () => {
|
|
156
199
|
expect(excludeContainers([])).to.have.length(0);
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "Mediavine",
|
|
3
|
-
"prehideSelectors": ["[data-name=\"mediavine-gdpr-cmp\"]"],
|
|
4
|
-
"detectCmp": [{ "exists": "[data-name=\"mediavine-gdpr-cmp\"]" }],
|
|
5
|
-
"detectPopup": [{ "wait": 500 }, { "visible": "[data-name=\"mediavine-gdpr-cmp\"]" }],
|
|
6
|
-
"optIn": [
|
|
7
|
-
{
|
|
8
|
-
"waitForThenClick": "[data-name=\"mediavine-gdpr-cmp\"] [format=\"primary\"]"
|
|
9
|
-
}
|
|
10
|
-
],
|
|
11
|
-
"optOut": [
|
|
12
|
-
{ "waitForThenClick": "[data-name=\"mediavine-gdpr-cmp\"] [data-view=\"manageSettings\"]" },
|
|
13
|
-
{ "waitFor": "[data-name=\"mediavine-gdpr-cmp\"] input[type=checkbox]" },
|
|
14
|
-
{ "eval": "EVAL_MEDIAVINE_0", "optional": true },
|
|
15
|
-
{ "click": "[data-name=\"mediavine-gdpr-cmp\"] [format=\"secondary\"]" }
|
|
16
|
-
]
|
|
17
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "national-lottery.co.uk",
|
|
3
|
-
"detectCmp": [{ "exists": ".cuk_cookie_consent" }],
|
|
4
|
-
"detectPopup": [{ "visible": ".cuk_cookie_consent", "check": "any" }],
|
|
5
|
-
"optOut": [
|
|
6
|
-
{ "click": ".cuk_cookie_consent_manage_pref" },
|
|
7
|
-
{ "click": ".cuk_cookie_consent_save_pref" },
|
|
8
|
-
{ "click": ".cuk_cookie_consent_close" }
|
|
9
|
-
],
|
|
10
|
-
"optIn": [{ "click": ".cuk_cookie_consent_accept_all" }]
|
|
11
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "ouraring",
|
|
3
|
-
"cosmetic": false,
|
|
4
|
-
"runContext": {
|
|
5
|
-
"main": true,
|
|
6
|
-
"frame": false,
|
|
7
|
-
"urlPattern": "^https://ouraring\\.com"
|
|
8
|
-
},
|
|
9
|
-
"prehideSelectors": [],
|
|
10
|
-
"detectCmp": [
|
|
11
|
-
{
|
|
12
|
-
"exists": "[data-cy=\"consent-manager-banner\"]"
|
|
13
|
-
}
|
|
14
|
-
],
|
|
15
|
-
"detectPopup": [
|
|
16
|
-
{
|
|
17
|
-
"visible": "[data-cy=\"consent-manager-banner\"]"
|
|
18
|
-
}
|
|
19
|
-
],
|
|
20
|
-
"optIn": [
|
|
21
|
-
{
|
|
22
|
-
"waitForThenClick": "[data-cy=\"manage_cookies\"]"
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
"waitForThenClick": "[data-cy=\"consent-manager-preferences-allow-all\"]"
|
|
26
|
-
}
|
|
27
|
-
],
|
|
28
|
-
"optOut": [
|
|
29
|
-
{
|
|
30
|
-
"waitForThenClick": "[data-cy=\"manage_cookies\"]"
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
"waitForThenClick": "[data-cy=\"consent-manager-preferences-deny-all\"]"
|
|
34
|
-
}
|
|
35
|
-
]
|
|
36
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "auto_AU_discover.utas.edu.au_k2n",
|
|
3
|
-
"cosmetic": false,
|
|
4
|
-
"runContext": {
|
|
5
|
-
"main": true,
|
|
6
|
-
"frame": false,
|
|
7
|
-
"urlPattern": "^https?://(www\\.)?discover\\.utas\\.edu\\.au/"
|
|
8
|
-
},
|
|
9
|
-
"prehideSelectors": [],
|
|
10
|
-
"detectCmp": [
|
|
11
|
-
{
|
|
12
|
-
"exists": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])"
|
|
13
|
-
}
|
|
14
|
-
],
|
|
15
|
-
"detectPopup": [
|
|
16
|
-
{
|
|
17
|
-
"visible": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])"
|
|
18
|
-
}
|
|
19
|
-
],
|
|
20
|
-
"optIn": [],
|
|
21
|
-
"optOut": [
|
|
22
|
-
{
|
|
23
|
-
"wait": 500
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
"waitForThenClick": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])",
|
|
27
|
-
"comment": "Reject"
|
|
28
|
-
}
|
|
29
|
-
],
|
|
30
|
-
"test": [
|
|
31
|
-
{
|
|
32
|
-
"waitForVisible": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])",
|
|
33
|
-
"timeout": 1000,
|
|
34
|
-
"check": "none"
|
|
35
|
-
}
|
|
36
|
-
]
|
|
37
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "auto_AU_experts.deakin.edu.au_0kw",
|
|
3
|
-
"cosmetic": false,
|
|
4
|
-
"_metadata": {
|
|
5
|
-
"vendorUrl": "http://experts.deakin.edu.au/"
|
|
6
|
-
},
|
|
7
|
-
"runContext": {
|
|
8
|
-
"main": true,
|
|
9
|
-
"frame": false,
|
|
10
|
-
"urlPattern": "^https?://(www\\.)?experts\\.deakin\\.edu\\.au/"
|
|
11
|
-
},
|
|
12
|
-
"prehideSelectors": [],
|
|
13
|
-
"detectCmp": [
|
|
14
|
-
{
|
|
15
|
-
"exists": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])"
|
|
16
|
-
}
|
|
17
|
-
],
|
|
18
|
-
"detectPopup": [
|
|
19
|
-
{
|
|
20
|
-
"visible": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])"
|
|
21
|
-
}
|
|
22
|
-
],
|
|
23
|
-
"optIn": [],
|
|
24
|
-
"optOut": [
|
|
25
|
-
{
|
|
26
|
-
"wait": 500
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
"waitForThenClick": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])",
|
|
30
|
-
"comment": "Reject"
|
|
31
|
-
}
|
|
32
|
-
],
|
|
33
|
-
"test": [
|
|
34
|
-
{
|
|
35
|
-
"waitForVisible": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])",
|
|
36
|
-
"timeout": 1000,
|
|
37
|
-
"check": "none"
|
|
38
|
-
}
|
|
39
|
-
]
|
|
40
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "auto_AU_experts.griffith.edu.au_oi0",
|
|
3
|
-
"cosmetic": false,
|
|
4
|
-
"runContext": {
|
|
5
|
-
"main": true,
|
|
6
|
-
"frame": false,
|
|
7
|
-
"urlPattern": "^https?://(www\\.)?experts\\.griffith\\.edu\\.au/"
|
|
8
|
-
},
|
|
9
|
-
"prehideSelectors": [],
|
|
10
|
-
"detectCmp": [
|
|
11
|
-
{
|
|
12
|
-
"exists": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])"
|
|
13
|
-
}
|
|
14
|
-
],
|
|
15
|
-
"detectPopup": [
|
|
16
|
-
{
|
|
17
|
-
"visible": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])"
|
|
18
|
-
}
|
|
19
|
-
],
|
|
20
|
-
"optIn": [],
|
|
21
|
-
"optOut": [
|
|
22
|
-
{
|
|
23
|
-
"wait": 500
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
"waitForThenClick": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])",
|
|
27
|
-
"comment": "Reject"
|
|
28
|
-
}
|
|
29
|
-
],
|
|
30
|
-
"test": [
|
|
31
|
-
{
|
|
32
|
-
"waitForVisible": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])",
|
|
33
|
-
"timeout": 1000,
|
|
34
|
-
"check": "none"
|
|
35
|
-
}
|
|
36
|
-
]
|
|
37
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "auto_AU_fullertonhotels.com_y46",
|
|
3
|
-
"cosmetic": false,
|
|
4
|
-
"_metadata": {
|
|
5
|
-
"vendorUrl": "http://www.fullertonhotels.com/"
|
|
6
|
-
},
|
|
7
|
-
"runContext": {
|
|
8
|
-
"main": false,
|
|
9
|
-
"frame": true,
|
|
10
|
-
"urlPattern": "^https?://(www\\.)?fullertonhotels\\.com/"
|
|
11
|
-
},
|
|
12
|
-
"prehideSelectors": [],
|
|
13
|
-
"detectCmp": [
|
|
14
|
-
{
|
|
15
|
-
"exists": "body > div#banner-0 > div:nth-child(1)#grouped-pageload-Banner > div:not([id]) > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(3):not([id])"
|
|
16
|
-
}
|
|
17
|
-
],
|
|
18
|
-
"detectPopup": [
|
|
19
|
-
{
|
|
20
|
-
"visible": "body > div#banner-0 > div:nth-child(1)#grouped-pageload-Banner > div:not([id]) > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(3):not([id])"
|
|
21
|
-
}
|
|
22
|
-
],
|
|
23
|
-
"optIn": [],
|
|
24
|
-
"optOut": [
|
|
25
|
-
{
|
|
26
|
-
"wait": 500
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
"waitForThenClick": "body > div#banner-0 > div:nth-child(1)#grouped-pageload-Banner > div:not([id]) > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(3):not([id])",
|
|
30
|
-
"comment": "Decline"
|
|
31
|
-
}
|
|
32
|
-
],
|
|
33
|
-
"test": [
|
|
34
|
-
{
|
|
35
|
-
"waitForVisible": "body > div#banner-0 > div:nth-child(1)#grouped-pageload-Banner > div:not([id]) > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(3):not([id])",
|
|
36
|
-
"timeout": 1000,
|
|
37
|
-
"check": "none"
|
|
38
|
-
}
|
|
39
|
-
]
|
|
40
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "auto_AU_profiles.uts.edu.au_ouv",
|
|
3
|
-
"cosmetic": false,
|
|
4
|
-
"runContext": {
|
|
5
|
-
"main": true,
|
|
6
|
-
"frame": false,
|
|
7
|
-
"urlPattern": "^https?://(www\\.)?profiles\\.uts\\.edu\\.au/"
|
|
8
|
-
},
|
|
9
|
-
"prehideSelectors": [],
|
|
10
|
-
"detectCmp": [
|
|
11
|
-
{
|
|
12
|
-
"exists": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])"
|
|
13
|
-
}
|
|
14
|
-
],
|
|
15
|
-
"detectPopup": [
|
|
16
|
-
{
|
|
17
|
-
"visible": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])"
|
|
18
|
-
}
|
|
19
|
-
],
|
|
20
|
-
"optIn": [],
|
|
21
|
-
"optOut": [
|
|
22
|
-
{
|
|
23
|
-
"wait": 500
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
"waitForThenClick": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])",
|
|
27
|
-
"comment": "Reject"
|
|
28
|
-
}
|
|
29
|
-
],
|
|
30
|
-
"test": [
|
|
31
|
-
{
|
|
32
|
-
"waitForVisible": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])",
|
|
33
|
-
"timeout": 1000,
|
|
34
|
-
"check": "none"
|
|
35
|
-
}
|
|
36
|
-
]
|
|
37
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "auto_AU_scholars.latrobe.edu.au_li6",
|
|
3
|
-
"cosmetic": false,
|
|
4
|
-
"_metadata": {
|
|
5
|
-
"vendorUrl": "http://scholars.latrobe.edu.au/"
|
|
6
|
-
},
|
|
7
|
-
"runContext": {
|
|
8
|
-
"main": true,
|
|
9
|
-
"frame": false,
|
|
10
|
-
"urlPattern": "^https?://(www\\.)?scholars\\.latrobe\\.edu\\.au/"
|
|
11
|
-
},
|
|
12
|
-
"prehideSelectors": [],
|
|
13
|
-
"detectCmp": [
|
|
14
|
-
{
|
|
15
|
-
"exists": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])"
|
|
16
|
-
}
|
|
17
|
-
],
|
|
18
|
-
"detectPopup": [
|
|
19
|
-
{
|
|
20
|
-
"visible": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])"
|
|
21
|
-
}
|
|
22
|
-
],
|
|
23
|
-
"optIn": [],
|
|
24
|
-
"optOut": [
|
|
25
|
-
{
|
|
26
|
-
"wait": 500
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
"waitForThenClick": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])",
|
|
30
|
-
"comment": "Reject"
|
|
31
|
-
}
|
|
32
|
-
],
|
|
33
|
-
"test": [
|
|
34
|
-
{
|
|
35
|
-
"waitForVisible": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])",
|
|
36
|
-
"timeout": 1000,
|
|
37
|
-
"check": "none"
|
|
38
|
-
}
|
|
39
|
-
]
|
|
40
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "auto_CA_discover.research.utoronto.ca_vtf",
|
|
3
|
-
"cosmetic": false,
|
|
4
|
-
"_metadata": {
|
|
5
|
-
"vendorUrl": "http://discover.research.utoronto.ca/"
|
|
6
|
-
},
|
|
7
|
-
"runContext": {
|
|
8
|
-
"main": true,
|
|
9
|
-
"frame": false,
|
|
10
|
-
"urlPattern": "^https?://(www\\.)?discover\\.research\\.utoronto\\.ca/"
|
|
11
|
-
},
|
|
12
|
-
"prehideSelectors": [],
|
|
13
|
-
"detectCmp": [
|
|
14
|
-
{
|
|
15
|
-
"exists": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])"
|
|
16
|
-
}
|
|
17
|
-
],
|
|
18
|
-
"detectPopup": [
|
|
19
|
-
{
|
|
20
|
-
"visible": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])"
|
|
21
|
-
}
|
|
22
|
-
],
|
|
23
|
-
"optIn": [],
|
|
24
|
-
"optOut": [
|
|
25
|
-
{
|
|
26
|
-
"wait": 500
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
"waitForThenClick": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])",
|
|
30
|
-
"comment": "Reject"
|
|
31
|
-
}
|
|
32
|
-
],
|
|
33
|
-
"test": [
|
|
34
|
-
{
|
|
35
|
-
"waitForVisible": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])",
|
|
36
|
-
"timeout": 1000,
|
|
37
|
-
"check": "none"
|
|
38
|
-
}
|
|
39
|
-
]
|
|
40
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "auto_CA_remarkable.com_kt9",
|
|
3
|
-
"cosmetic": false,
|
|
4
|
-
"_metadata": {
|
|
5
|
-
"vendorUrl": "http://remarkable.com/"
|
|
6
|
-
},
|
|
7
|
-
"runContext": {
|
|
8
|
-
"main": true,
|
|
9
|
-
"frame": false,
|
|
10
|
-
"urlPattern": "^https?://(www\\.)?remarkable\\.com/"
|
|
11
|
-
},
|
|
12
|
-
"prehideSelectors": [],
|
|
13
|
-
"detectCmp": [
|
|
14
|
-
{
|
|
15
|
-
"exists": "body > dialog:not([id]) > div:not([id]) > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(1):not([id])"
|
|
16
|
-
}
|
|
17
|
-
],
|
|
18
|
-
"detectPopup": [
|
|
19
|
-
{
|
|
20
|
-
"visible": "body > dialog:not([id]) > div:not([id]) > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(1):not([id])"
|
|
21
|
-
}
|
|
22
|
-
],
|
|
23
|
-
"optIn": [],
|
|
24
|
-
"optOut": [
|
|
25
|
-
{
|
|
26
|
-
"wait": 500
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
"waitForThenClick": "body > dialog:not([id]) > div:not([id]) > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(1):not([id])",
|
|
30
|
-
"comment": "Only necessary"
|
|
31
|
-
}
|
|
32
|
-
],
|
|
33
|
-
"test": [
|
|
34
|
-
{
|
|
35
|
-
"waitForVisible": "body > dialog:not([id]) > div:not([id]) > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(1):not([id])",
|
|
36
|
-
"timeout": 1000,
|
|
37
|
-
"check": "none"
|
|
38
|
-
}
|
|
39
|
-
]
|
|
40
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "auto_DE_www2.hm.com_beo",
|
|
3
|
-
"cosmetic": false,
|
|
4
|
-
"_metadata": {
|
|
5
|
-
"vendorUrl": "http://www2.hm.com/"
|
|
6
|
-
},
|
|
7
|
-
"runContext": {
|
|
8
|
-
"main": true,
|
|
9
|
-
"frame": false,
|
|
10
|
-
"urlPattern": "^https?://(www\\.)?www2\\.hm\\.com/"
|
|
11
|
-
},
|
|
12
|
-
"prehideSelectors": [],
|
|
13
|
-
"detectCmp": [
|
|
14
|
-
{
|
|
15
|
-
"exists": "body > div:not([id]) > dialog:nth-child(1):not([id]) > div:nth-child(2):not([id]) > div:not([id]) > div:nth-child(1):not([id]) > button:nth-child(2)#banner-reject-btn"
|
|
16
|
-
}
|
|
17
|
-
],
|
|
18
|
-
"detectPopup": [
|
|
19
|
-
{
|
|
20
|
-
"visible": "body > div:not([id]) > dialog:nth-child(1):not([id]) > div:nth-child(2):not([id]) > div:not([id]) > div:nth-child(1):not([id]) > button:nth-child(2)#banner-reject-btn"
|
|
21
|
-
}
|
|
22
|
-
],
|
|
23
|
-
"optIn": [],
|
|
24
|
-
"optOut": [
|
|
25
|
-
{
|
|
26
|
-
"wait": 500
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
"waitForThenClick": "body > div:not([id]) > dialog:nth-child(1):not([id]) > div:nth-child(2):not([id]) > div:not([id]) > div:nth-child(1):not([id]) > button:nth-child(2)#banner-reject-btn",
|
|
30
|
-
"comment": "NUR ERFORDERLICHE COOKIES"
|
|
31
|
-
}
|
|
32
|
-
],
|
|
33
|
-
"test": [
|
|
34
|
-
{
|
|
35
|
-
"waitForVisible": "body > div:not([id]) > dialog:nth-child(1):not([id]) > div:nth-child(2):not([id]) > div:not([id]) > div:nth-child(1):not([id]) > button:nth-child(2)#banner-reject-btn",
|
|
36
|
-
"timeout": 1000,
|
|
37
|
-
"check": "none"
|
|
38
|
-
}
|
|
39
|
-
]
|
|
40
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "auto_GB_profiles.ucl.ac.uk_lpo",
|
|
3
|
-
"cosmetic": false,
|
|
4
|
-
"_metadata": {
|
|
5
|
-
"vendorUrl": "http://profiles.ucl.ac.uk/"
|
|
6
|
-
},
|
|
7
|
-
"runContext": {
|
|
8
|
-
"main": true,
|
|
9
|
-
"frame": false,
|
|
10
|
-
"urlPattern": "^https?://(www\\.)?profiles\\.ucl\\.ac\\.uk/"
|
|
11
|
-
},
|
|
12
|
-
"prehideSelectors": [],
|
|
13
|
-
"detectCmp": [
|
|
14
|
-
{
|
|
15
|
-
"exists": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])"
|
|
16
|
-
}
|
|
17
|
-
],
|
|
18
|
-
"detectPopup": [
|
|
19
|
-
{
|
|
20
|
-
"visible": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])"
|
|
21
|
-
}
|
|
22
|
-
],
|
|
23
|
-
"optIn": [],
|
|
24
|
-
"optOut": [
|
|
25
|
-
{
|
|
26
|
-
"wait": 500
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
"waitForThenClick": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])",
|
|
30
|
-
"comment": "Reject"
|
|
31
|
-
}
|
|
32
|
-
],
|
|
33
|
-
"test": [
|
|
34
|
-
{
|
|
35
|
-
"waitForVisible": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])",
|
|
36
|
-
"timeout": 1000,
|
|
37
|
-
"check": "none"
|
|
38
|
-
}
|
|
39
|
-
]
|
|
40
|
-
}
|