puppeteer-ruby 0.0.25 → 0.30.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.
@@ -97,6 +97,18 @@ class Puppeteer::RemoteObject
97
97
  nil
98
98
  end
99
99
 
100
+ # used in ElementHandle#query_ax_tree
101
+ def query_ax_tree(client, accessible_name: nil, role: nil)
102
+ result = client.send_message('Accessibility.queryAXTree', {
103
+ objectId: @object_id,
104
+ accessibleName: accessible_name,
105
+ role: role,
106
+ }.compact)
107
+
108
+ result['nodes'].reject do |node|
109
+ node['role']['value'] == 'text'
110
+ end
111
+ end
100
112
 
101
113
  # helper#valueFromRemoteObject
102
114
  def value
@@ -18,15 +18,13 @@ class Puppeteer::Target
18
18
  # @param {!function():!Promise<!Puppeteer.CDPSession>} sessionFactory
19
19
  # @param {boolean} ignoreHTTPSErrors
20
20
  # @param {?Puppeteer.Viewport} defaultViewport
21
- # @param {!Puppeteer.TaskQueue} screenshotTaskQueue
22
- def initialize(target_info:, browser_context:, session_factory:, ignore_https_errors:, default_viewport:, screenshot_task_queue:)
21
+ def initialize(target_info:, browser_context:, session_factory:, ignore_https_errors:, default_viewport:)
23
22
  @target_info = target_info
24
23
  @browser_context = browser_context
25
24
  @target_id = target_info.target_id
26
25
  @session_factory = session_factory
27
26
  @ignore_https_errors = ignore_https_errors
28
27
  @default_viewport = default_viewport
29
- @screenshot_task_queue = screenshot_task_queue
30
28
 
31
29
 
32
30
  # /** @type {?Promise<!Puppeteer.Page>} */
@@ -87,7 +85,7 @@ class Puppeteer::Target
87
85
  def page
88
86
  if ['page', 'background_page', 'webview'].include?(@target_info.type) && @page.nil?
89
87
  client = @session_factory.call
90
- @page = Puppeteer::Page.create(client, self, @ignore_https_errors, @default_viewport, @screenshot_task_queue)
88
+ @page = Puppeteer::Page.create(client, self, @ignore_https_errors, @default_viewport)
91
89
  end
92
90
  @page
93
91
  end
@@ -1,3 +1,3 @@
1
1
  class Puppeteer
2
- VERSION = '0.0.25'
2
+ VERSION = '0.30.0'
3
3
  end
@@ -9,7 +9,7 @@ class Puppeteer::WaitTask
9
9
  end
10
10
  end
11
11
 
12
- def initialize(dom_world:, predicate_body:, title:, polling:, timeout:, args: [])
12
+ def initialize(dom_world:, predicate_body:, title:, polling:, timeout:, args: [], binding_function: nil)
13
13
  if polling.is_a?(String)
14
14
  if polling != 'raf' && polling != 'mutation'
15
15
  raise ArgumentError.new("Unknown polling option: #{polling}")
@@ -27,8 +27,12 @@ class Puppeteer::WaitTask
27
27
  @timeout = timeout
28
28
  @predicate_body = "return (#{predicate_body})(...args);"
29
29
  @args = args
30
+ @binding_function = binding_function
30
31
  @run_count = 0
31
- @dom_world._wait_tasks.add(self)
32
+ @dom_world.send(:_wait_tasks).add(self)
33
+ if binding_function
34
+ @dom_world.send(:_bound_functions)[binding_function.name] = binding_function
35
+ end
32
36
  @promise = resolvable_future
33
37
 
34
38
  # Since page navigation requires us to re-install the pageScript, we should track
@@ -53,8 +57,16 @@ class Puppeteer::WaitTask
53
57
 
54
58
  def rerun
55
59
  run_count = (@run_count += 1)
60
+ context = @dom_world.execution_context
61
+
62
+ return if @terminated || run_count != @run_count
63
+ if @binding_function
64
+ @dom_world.add_binding_to_context(context, @binding_function)
65
+ end
66
+ return if @terminated || run_count != @run_count
67
+
56
68
  begin
57
- success = @dom_world.execution_context.evaluate_handle(
69
+ success = context.evaluate_handle(
58
70
  WAIT_FOR_PREDICATE_PAGE_FUNCTION,
59
71
  @predicate_body,
60
72
  @polling,
@@ -103,7 +115,7 @@ class Puppeteer::WaitTask
103
115
 
104
116
  private def cleanup
105
117
  @timeout_cleared = true
106
- @dom_world._wait_tasks.delete(self)
118
+ @dom_world.send(:_wait_tasks).delete(self)
107
119
  end
108
120
 
109
121
  private define_async_method :async_rerun
@@ -21,13 +21,15 @@ Gem::Specification.new do |spec|
21
21
  spec.add_dependency 'concurrent-ruby', '~> 1.1.0'
22
22
  spec.add_dependency 'websocket-driver', '>= 0.6.0'
23
23
  spec.add_dependency 'mime-types', '>= 3.0'
24
- spec.add_development_dependency 'bundler', '~> 1.17'
24
+ spec.add_development_dependency 'bundler', '~> 2.2.3'
25
+ spec.add_development_dependency 'chunky_png'
25
26
  spec.add_development_dependency 'pry-byebug'
26
- spec.add_development_dependency 'rake', '~> 10.0'
27
- spec.add_development_dependency 'rspec', '~> 3.0'
27
+ spec.add_development_dependency 'rake', '~> 13.0.3'
28
+ spec.add_development_dependency 'rspec', '~> 3.10.0 '
28
29
  spec.add_development_dependency 'rspec_junit_formatter' # for CircleCI.
29
- spec.add_development_dependency 'rubocop', '~> 0.90.0'
30
+ spec.add_development_dependency 'rubocop', '~> 1.10.0'
30
31
  spec.add_development_dependency 'rubocop-rspec'
31
32
  spec.add_development_dependency 'sinatra'
33
+ spec.add_development_dependency 'webrick'
32
34
  spec.add_development_dependency 'yard'
33
35
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppeteer-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.25
4
+ version: 0.30.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - YusukeIwaki
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-12-16 00:00:00.000000000 Z
11
+ date: 2021-02-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -58,14 +58,28 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.17'
61
+ version: 2.2.3
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.17'
68
+ version: 2.2.3
69
+ - !ruby/object:Gem::Dependency
70
+ name: chunky_png
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: pry-byebug
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -86,28 +100,28 @@ dependencies:
86
100
  requirements:
87
101
  - - "~>"
88
102
  - !ruby/object:Gem::Version
89
- version: '10.0'
103
+ version: 13.0.3
90
104
  type: :development
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
108
  - - "~>"
95
109
  - !ruby/object:Gem::Version
96
- version: '10.0'
110
+ version: 13.0.3
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: rspec
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
115
  - - "~>"
102
116
  - !ruby/object:Gem::Version
103
- version: '3.0'
117
+ version: 3.10.0
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
122
  - - "~>"
109
123
  - !ruby/object:Gem::Version
110
- version: '3.0'
124
+ version: 3.10.0
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: rspec_junit_formatter
113
127
  requirement: !ruby/object:Gem::Requirement
@@ -128,14 +142,14 @@ dependencies:
128
142
  requirements:
129
143
  - - "~>"
130
144
  - !ruby/object:Gem::Version
131
- version: 0.90.0
145
+ version: 1.10.0
132
146
  type: :development
133
147
  prerelease: false
134
148
  version_requirements: !ruby/object:Gem::Requirement
135
149
  requirements:
136
150
  - - "~>"
137
151
  - !ruby/object:Gem::Version
138
- version: 0.90.0
152
+ version: 1.10.0
139
153
  - !ruby/object:Gem::Dependency
140
154
  name: rubocop-rspec
141
155
  requirement: !ruby/object:Gem::Requirement
@@ -164,6 +178,20 @@ dependencies:
164
178
  - - ">="
165
179
  - !ruby/object:Gem::Version
166
180
  version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: webrick
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
167
195
  - !ruby/object:Gem::Dependency
168
196
  name: yard
169
197
  requirement: !ruby/object:Gem::Requirement
@@ -186,6 +214,8 @@ extensions: []
186
214
  extra_rdoc_files: []
187
215
  files:
188
216
  - ".circleci/config.yml"
217
+ - ".github/ISSUE_TEMPLATE/bug_report.md"
218
+ - ".github/ISSUE_TEMPLATE/feature_request.md"
189
219
  - ".github/stale.yml"
190
220
  - ".github/workflows/docs.yml"
191
221
  - ".github/workflows/reviewdog.yml"
@@ -193,6 +223,7 @@ files:
193
223
  - ".rspec"
194
224
  - ".rubocop.yml"
195
225
  - ".travis.yml"
226
+ - CHANGELOG.md
196
227
  - Dockerfile
197
228
  - Gemfile
198
229
  - README.md
@@ -201,6 +232,7 @@ files:
201
232
  - bin/setup
202
233
  - docker-compose.yml
203
234
  - lib/puppeteer.rb
235
+ - lib/puppeteer/aria_query_handler.rb
204
236
  - lib/puppeteer/browser.rb
205
237
  - lib/puppeteer/browser_context.rb
206
238
  - lib/puppeteer/browser_fetcher.rb
@@ -209,6 +241,7 @@ files:
209
241
  - lib/puppeteer/concurrent_ruby_utils.rb
210
242
  - lib/puppeteer/connection.rb
211
243
  - lib/puppeteer/console_message.rb
244
+ - lib/puppeteer/custom_query_handler.rb
212
245
  - lib/puppeteer/debug_print.rb
213
246
  - lib/puppeteer/define_async_method.rb
214
247
  - lib/puppeteer/device.rb
@@ -248,6 +281,8 @@ files:
248
281
  - lib/puppeteer/page.rb
249
282
  - lib/puppeteer/page/pdf_options.rb
250
283
  - lib/puppeteer/page/screenshot_options.rb
284
+ - lib/puppeteer/page/screenshot_task_queue.rb
285
+ - lib/puppeteer/query_handler_manager.rb
251
286
  - lib/puppeteer/remote_object.rb
252
287
  - lib/puppeteer/request.rb
253
288
  - lib/puppeteer/response.rb