Skip to content
This repository was archived by the owner on Aug 10, 2022. It is now read-only.

Commit c523d3f

Browse files
authored
Merge pull request #25 from applitools/develop
Merge develop to master
2 parents 8c9ae7c + 05f96fa commit c523d3f

File tree

14 files changed

+138
-69
lines changed

14 files changed

+138
-69
lines changed

.bumpversion.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[bumpversion]
2-
current_version = 4.0.2
2+
current_version = 4.0.3
33
commit = True
44
tag = True
55

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "4.0.2"
1+
__version__ = "4.0.3"
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "4.0.2"
1+
__version__ = "4.0.3"
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "4.0.2"
1+
__version__ = "4.0.3"
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "4.0.2"
1+
__version__ = "4.0.3"

eyes_selenium/applitools/selenium/eyes.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,9 @@ def close(self, raise_ex=True):
229229

230230
def close_async(self):
231231
if self._is_visual_grid_eyes:
232-
self._current_eyes.close_async()
232+
self._visual_grid_eyes.close_async()
233+
else:
234+
self._selenium_eyes.close(False)
233235

234236
def _init_driver(self, driver):
235237
# type: (AnyWebDriver) -> None

eyes_selenium/applitools/selenium/resources/captureDom.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// @applitools/[email protected].8
1+
// @applitools/[email protected].10
22
function __captureDom() {
33
var captureDom = (function () {
44
'use strict';
@@ -412,4 +412,4 @@ function __captureDom() {
412412
}());
413413

414414
return captureDom.apply(this, arguments);
415-
}
415+
}

eyes_selenium/applitools/selenium/resources/processPage.js

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// @applitools/dom-snapshot@1.1.5
1+
// @applitools/dom-snapshot@1.2.4
22
function __processPage() {
33
var processPage = (function () {
44
'use strict';
@@ -17,6 +17,10 @@ function __processPage() {
1717
srcEl.getAttribute('src'),
1818
);
1919

20+
const hrefUrls = [...doc.querySelectorAll('image')]
21+
.map(hrefEl => hrefEl.getAttribute('href') || hrefEl.getAttribute('xlink:href'))
22+
.filter(Boolean);
23+
2024
const cssUrls = [...doc.querySelectorAll('link[rel="stylesheet"]')].map(link =>
2125
link.getAttribute('href'),
2226
);
@@ -25,7 +29,7 @@ function __processPage() {
2529
videoEl.getAttribute('poster'),
2630
);
2731

28-
return [...srcsetUrls, ...srcUrls, ...cssUrls, ...videoPosterUrls];
32+
return [...srcsetUrls, ...srcUrls, ...hrefUrls, ...cssUrls, ...videoPosterUrls];
2933
}
3034

3135
var extractLinks_1 = extractLinks;
@@ -64,21 +68,20 @@ function __processPage() {
6468
}
6569

6670
function elementNodeFactory(domNodes, elementNode) {
67-
let node;
71+
let node, manualChildNodeIndexes;
6872
const {nodeType} = elementNode;
6973
if ([NODE_TYPES.ELEMENT, NODE_TYPES.DOCUMENT_FRAGMENT_NODE].includes(nodeType)) {
7074
if (elementNode.nodeName !== 'SCRIPT') {
7175
if (
7276
elementNode.nodeName === 'STYLE' &&
73-
!elementNode.textContent &&
7477
elementNode.sheet &&
7578
elementNode.sheet.cssRules.length
7679
) {
77-
elementNode.appendChild(
78-
docNode.createTextNode(
79-
[...elementNode.sheet.cssRules].map(rule => rule.cssText).join(''),
80-
),
81-
);
80+
domNodes.push({
81+
nodeType: NODE_TYPES.TEXT,
82+
nodeValue: [...elementNode.sheet.cssRules].map(rule => rule.cssText).join(''),
83+
});
84+
manualChildNodeIndexes = [domNodes.length - 1];
8285
}
8386

8487
node = {
@@ -90,16 +93,24 @@ function __processPage() {
9093

9194
if (/^blob:/.test(value)) {
9295
value = value.replace(/^blob:/, '');
96+
} else if (
97+
elementNode.nodeName === 'IFRAME' &&
98+
name === 'src' &&
99+
!elementNode.contentDocument &&
100+
!value.match(/^\s*data:/)
101+
) {
102+
value = '';
93103
}
94-
95104
return {
96105
name,
97106
value,
98107
};
99108
}),
100-
childNodeIndexes: elementNode.childNodes.length
101-
? childrenFactory(domNodes, elementNode.childNodes)
102-
: [],
109+
childNodeIndexes:
110+
manualChildNodeIndexes ||
111+
(elementNode.childNodes.length
112+
? childrenFactory(domNodes, elementNode.childNodes)
113+
: []),
103114
};
104115

105116
if (elementNode.shadowRoot) {
@@ -471,4 +482,4 @@ function __processPage() {
471482
}());
472483

473484
return processPage.apply(this, arguments);
474-
}
485+
}

eyes_selenium/applitools/selenium/visual_grid/render_task.py

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class RenderTask(VGTask):
3030
MAX_FAILS_COUNT = 5
3131
MAX_ITERATIONS = 100
3232

33-
script = attr.ib(repr=False)
33+
script = attr.ib(hash=False, repr=False) # type: Dict[str, Any]
3434
running_test = attr.ib() # type: RunningTest
3535
resource_cache = attr.ib(hash=False, repr=False)
3636
put_cache = attr.ib(hash=False, repr=False)
@@ -39,7 +39,7 @@ class RenderTask(VGTask):
3939
region_selectors = attr.ib(hash=False, factory=list)
4040
size_mode = attr.ib(default=None)
4141
region_to_check = attr.ib(hash=False, default=None)
42-
agent_id = attr.ib(hash=False, default=None)
42+
agent_id = attr.ib(default=None)
4343
func_to_run = attr.ib(default=None, hash=False, repr=False) # type: Callable
4444

4545
def __attrs_post_init__(self):
@@ -59,7 +59,7 @@ def get_and_put_resource(url):
5959
return resource
6060

6161
requests = []
62-
rq = self.prepare_data_for_rg(self.script_data)
62+
rq = self.prepare_data_for_rg(self.script)
6363
requests.append(rq)
6464
fetch_fails = 0
6565
render_requests = None
@@ -107,11 +107,6 @@ def get_and_put_resource(url):
107107
)
108108
return statuses[0]
109109

110-
@property
111-
def script_data(self):
112-
# type: () -> Dict[str, Any]
113-
return json.loads(self.script, object_pairs_hook=OrderedDict)
114-
115110
def prepare_data_for_rg(self, data):
116111
# type: (Dict) -> RenderRequest
117112
base_url = data["url"]

eyes_selenium/applitools/selenium/visual_grid/running_test.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ def check(
157157
self,
158158
tag, # type: Text
159159
check_settings, # type: SeleniumCheckSettings
160-
script_result, # type: Text
160+
script_result, # type: Dict[str, Any]
161161
visual_grid_manager, # type: VisualGridRunner
162162
region_selectors,
163163
size_mode,
@@ -204,7 +204,7 @@ def _render_task(
204204
size_mode,
205205
region_to_check,
206206
):
207-
# type: (Text,Text,VisualGridRunner,List,Region,Optional[Any])->RenderTask
207+
# type: (Dict[str, Any],Text,VisualGridRunner,List,Region,Optional[Any])->RenderTask
208208
render_task = RenderTask(
209209
name="RunningTest.render {} - {}".format(
210210
self.configuration.short_description, tag

0 commit comments

Comments
 (0)