axe-core-api 4.9.0.pre.0d32cea → 4.9.0.pre.02e93ef

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dcd6f22c1869a0d88a49f92ed2b15fa1fc9aa0c5102742dc6d402a398988e175
4
- data.tar.gz: e415e66646125562d5475a4a7688ef81a6bdc7847b4659bb060f444897172221
3
+ metadata.gz: b00550b1b3b4d3dcae23fa3ded496580438ef24a993efdbe35f2153e4bd50267
4
+ data.tar.gz: 750e8dd0df4f97577cb822fc426b4082d66b2c5c4b9d54d3fd5f90020d6beed7
5
5
  SHA512:
6
- metadata.gz: 1da1346644cd6e59495a8666441ea42eae0bb317589a3751621db663d48753469d9413a9930bb5a56b2c36bf4cec46cd2cc4b47c984a411293bafb8216cf9cd5
7
- data.tar.gz: 307d79c1a4d47e7ff82b8f6b3590fbe6b15737b3185af79c0cebb6cc6cbc5edcf82b8ef4f89c2bca5d1138611618aa6aa0ef017bf10f5b18901c0a140b52618f
6
+ metadata.gz: c99ae2fa9d4cae9fcbb01370365de54f799040a0f5673689bf4cdfecf2a04bcb5ecc19a5cbbd291e1623aba9aafa58a3457a3c979e6d11eedd35d802e76feb72
7
+ data.tar.gz: ef7beb69aafc8abce9933b66b5416a3777df39a763e4d943909797cd964bf8d128a752bc710f2ff3ca0845085e3cbc2b1da7b232b9bbc39043f6a83d7e9ab161
data/lib/axe/api/run.rb CHANGED
@@ -87,28 +87,22 @@ module Axe
87
87
 
88
88
  def within_about_blank_context(page)
89
89
  driver = get_selenium page
90
- # This is a workaround to maintain Selenium 3 support
91
- # Likely driver.switch_to.new_window(:tab) should be used instead, should we drop support, as per
92
- # https://github.com/dequelabs/axe-core-gems/issues/352
93
90
 
94
- before_handles = page.window_handles
91
+ num_handles = page.window_handles.length
95
92
  begin
96
93
  driver.execute_script("window.open('about:blank'), '_blank'")
94
+ if num_handles == page.window_handles.length
95
+ raise StandardError.new "Could not open new window. Please make sure that you have popup blockers disabled."
96
+ end
97
+ driver.switch_to.window page.window_handles[-1]
97
98
  rescue
98
- raise StandardError.new "switchToWindow failed. Are you using updated browser drivers? Please check out https://github.com/dequelabs/axe-core-gems/blob/develop/error-handling.md"
99
- end
100
- after_handles = page.window_handles
101
- new_handles = after_handles.difference(before_handles)
102
- if new_handles.length != 1
103
- raise StandardError.new "Unable to determine window handle"
99
+ raise StandardError.new "switchToWindow failed. Are you using updated browser drivers? Please check out https://github.com/dequelabs/axe-core-gems/blob/develop/error-handling.md"
104
100
  end
105
- new_handle = new_handles[0]
106
- driver.switch_to.window new_handle
107
101
  driver.get "about:blank"
108
102
 
109
103
  ret = yield page
110
104
 
111
- driver.switch_to.window new_handle
105
+ driver.switch_to.window page.window_handles[-1]
112
106
  driver.close
113
107
  driver.switch_to.window @original_window
114
108
 
data/lib/axe/core.rb CHANGED
@@ -38,8 +38,22 @@ module Axe
38
38
  Core.has_run_partial?(@page) and not Axe::Configuration.instance.legacy_mode
39
39
  end
40
40
 
41
+ def assert_frame_ready
42
+ begin
43
+ ready = Timeout.timeout(10) {
44
+ @page.evaluate_script <<-JS
45
+ document.readyState === 'complete'
46
+ JS
47
+ }
48
+ rescue Timeout::Error
49
+ ready = false
50
+ end
51
+ raise Exception.new "Page/frame not ready" if not ready
52
+ end
53
+
41
54
  def load_axe_core(source)
42
55
  return if already_loaded?
56
+ assert_frame_ready
43
57
  loader = Common::Loader.new(@page, self)
44
58
  loader.load_top_level source
45
59
  return if use_run_partial