percy-capybara 5.0.1 → 5.0.2.pre.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.
- checksums.yaml +4 -4
- data/lib/percy/capybara.rb +22 -5
- data/lib/percy/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2df3b25d83f60fb1e936b2e7dacd200ae4d26544d95271487bc621c44bf2c54d
|
|
4
|
+
data.tar.gz: 6cae727a95c84075221a2892abaf0446fa2456f90f42c17adcc2c082f63425c1
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a0e7ae3aad42d0e79f716ac874a9907a15a7638520b6d096335c801f7bc4057674f7dc7dc46d114973c0dd6f6f7740b006c2f9404727e20526f0a3bc45422ef9
|
|
7
|
+
data.tar.gz: 8b5e2e4fc5c9436539d3717ead83c8511dabb765d33ac2383b7e5e1f1220521237e01fb35defc24850fe5e403afda6d9d08f05ab2a223b9836b85fb5294a3c7c
|
data/lib/percy/capybara.rb
CHANGED
|
@@ -30,8 +30,6 @@ module PercyCapybara
|
|
|
30
30
|
begin
|
|
31
31
|
percy_dom_script = fetch_percy_dom
|
|
32
32
|
page.evaluate_script(percy_dom_script)
|
|
33
|
-
dom_snapshot = get_serialized_dom(page, options, percy_dom_script)
|
|
34
|
-
page.evaluate_script(fetch_percy_dom)
|
|
35
33
|
|
|
36
34
|
# Readiness gate -- runs before serialize when CLI supports it.
|
|
37
35
|
# Uses evaluate_async_script with a callback signal so the SDK can block
|
|
@@ -45,8 +43,9 @@ module PercyCapybara
|
|
|
45
43
|
config_options = @cli_config&.dig('snapshot') || {}
|
|
46
44
|
merged_options = deep_merge_options(config_options, deep_stringify(options))
|
|
47
45
|
|
|
48
|
-
|
|
49
|
-
|
|
46
|
+
# Single serialize pass -- get_serialized_dom serializes the page with the
|
|
47
|
+
# merged options and attaches any captured cross-origin iframes.
|
|
48
|
+
dom_snapshot = get_serialized_dom(page, merged_options, percy_dom_script)
|
|
50
49
|
|
|
51
50
|
if readiness_diagnostics && dom_snapshot.is_a?(Hash)
|
|
52
51
|
dom_snapshot['readiness_diagnostics'] = readiness_diagnostics
|
|
@@ -83,7 +82,9 @@ module PercyCapybara
|
|
|
83
82
|
dom_snapshot = page
|
|
84
83
|
.evaluate_script("(function() { return PercyDOM.serialize(#{options.to_json}) })()")
|
|
85
84
|
|
|
86
|
-
driver = page
|
|
85
|
+
driver = selenium_browser(page)
|
|
86
|
+
return dom_snapshot if driver.nil?
|
|
87
|
+
|
|
87
88
|
begin
|
|
88
89
|
page_origin = get_origin(page.current_url)
|
|
89
90
|
iframes = driver.find_elements(:tag_name, 'iframe')
|
|
@@ -138,6 +139,22 @@ module PercyCapybara
|
|
|
138
139
|
dom_snapshot
|
|
139
140
|
end
|
|
140
141
|
|
|
142
|
+
private def selenium_browser(page)
|
|
143
|
+
driver = page.driver
|
|
144
|
+
return nil unless driver.respond_to?(:browser)
|
|
145
|
+
|
|
146
|
+
browser = driver.browser
|
|
147
|
+
unless browser.respond_to?(:find_elements) && browser.respond_to?(:switch_to)
|
|
148
|
+
log('Skipping cross-origin iframe capture: driver is not Selenium-backed') if PERCY_DEBUG
|
|
149
|
+
return nil
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
browser
|
|
153
|
+
rescue StandardError => e
|
|
154
|
+
log("Skipping cross-origin iframe capture: #{e}") if PERCY_DEBUG
|
|
155
|
+
nil
|
|
156
|
+
end
|
|
157
|
+
|
|
141
158
|
private def unsupported_iframe_src?(src)
|
|
142
159
|
return true if src.nil? || src.empty?
|
|
143
160
|
|
data/lib/percy/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: percy-capybara
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 5.0.
|
|
4
|
+
version: 5.0.2.pre.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Perceptual Inc.
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
11
|
+
date: 2026-08-11 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: capybara
|
|
@@ -150,9 +150,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
150
150
|
version: 2.3.0
|
|
151
151
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
152
152
|
requirements:
|
|
153
|
-
- - "
|
|
153
|
+
- - ">"
|
|
154
154
|
- !ruby/object:Gem::Version
|
|
155
|
-
version:
|
|
155
|
+
version: 1.3.1
|
|
156
156
|
requirements: []
|
|
157
157
|
rubygems_version: 3.0.3.1
|
|
158
158
|
signing_key:
|