puppeteer-ruby 0.50.0.alpha5 → 0.50.0.alpha6

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.
@@ -1,3 +1,3 @@
1
1
  module Puppeteer
2
- VERSION = '0.50.0.alpha5'
2
+ VERSION = '0.50.0.alpha6'
3
3
  end
data/lib/puppeteer.rb CHANGED
@@ -70,6 +70,8 @@ require 'puppeteer/network_manager'
70
70
  require 'puppeteer/page'
71
71
  require 'puppeteer/protocol_stream_reader'
72
72
  require 'puppeteer/puppeteer'
73
+ require 'puppeteer/p_selector_parser'
74
+ require 'puppeteer/p_query_handler'
73
75
  require 'puppeteer/query_handler_manager'
74
76
  require 'puppeteer/remote_object'
75
77
  require 'puppeteer/target'
@@ -86,6 +88,7 @@ require 'puppeteer/web_socket_transport'
86
88
 
87
89
  # subclasses
88
90
  require 'puppeteer/element_handle'
91
+ require 'puppeteer/locators'
89
92
 
90
93
  # ref: https://github.com/puppeteer/puppeteer/blob/master/lib/Puppeteer.js
91
94
  module Puppeteer
@@ -112,6 +112,9 @@ class Puppeteer::ElementHandle < Puppeteer::JSHandle
112
112
  # @rbs return: Puppeteer::ElementHandle -- Element handle
113
113
  def as_element: () -> Puppeteer::ElementHandle
114
114
 
115
+ # @rbs return: Puppeteer::Locator -- Locator for this element
116
+ def as_locator: () -> Puppeteer::Locator
117
+
115
118
  # @rbs return: bool -- Whether element is visible
116
119
  def visible?: () -> bool
117
120
 
@@ -19,6 +19,13 @@ class Puppeteer::Frame
19
19
  # @rbs return: Puppeteer::Page -- Owning page
20
20
  def page: () -> Puppeteer::Page
21
21
 
22
+ # @rbs return: Numeric -- Default timeout in milliseconds
23
+ def default_timeout: () -> Numeric
24
+
25
+ # @rbs selector_or_function: String -- Selector or JS function
26
+ # @rbs return: Puppeteer::Locator -- Locator for selector or function
27
+ def locator: (String selector_or_function) -> Puppeteer::Locator
28
+
22
29
  # @rbs return: bool -- Whether this is an OOPIF frame
23
30
  def oop_frame?: () -> bool
24
31
 
@@ -0,0 +1,222 @@
1
+ # Generated from lib/puppeteer/locators.rb with RBS::Inline
2
+
3
+ module Puppeteer
4
+ module LocatorEvent
5
+ Action: ::String
6
+ end
7
+ end
8
+
9
+ class Puppeteer::Locator
10
+ include Puppeteer::EventCallbackable
11
+
12
+ RETRY_DELAY_SECONDS: ::Float
13
+
14
+ class TimeoutController
15
+ def initialize: (untyped timeout) -> untyped
16
+
17
+ attr_reader timeout: untyped
18
+
19
+ def remaining_timeout: () -> untyped
20
+
21
+ def exceeded?: () -> untyped
22
+
23
+ def check!: (?untyped cause) -> untyped
24
+ end
25
+
26
+ def initialize: () -> untyped
27
+
28
+ # @rbs locators: Array[Puppeteer::Locator] -- Locator candidates
29
+ # @rbs return: Puppeteer::Locator -- Locator that races candidates
30
+ def self.race: (Array[Puppeteer::Locator] locators) -> Puppeteer::Locator
31
+
32
+ # @rbs input: String -- Input string to check
33
+ # @rbs return: bool -- Whether string looks like a JS function
34
+ def self.function_string?: (String input) -> bool
35
+
36
+ # @rbs return: Numeric -- Timeout in milliseconds
37
+ def timeout: () -> Numeric
38
+
39
+ # @rbs timeout: Numeric -- Timeout in milliseconds
40
+ # @rbs return: Puppeteer::Locator -- Updated locator
41
+ def set_timeout: (Numeric timeout) -> Puppeteer::Locator
42
+
43
+ # @rbs visibility: String? -- 'visible', 'hidden', or nil
44
+ # @rbs return: Puppeteer::Locator -- Updated locator
45
+ def set_visibility: (String? visibility) -> Puppeteer::Locator
46
+
47
+ # @rbs value: bool -- Whether to wait for enabled state
48
+ # @rbs return: Puppeteer::Locator -- Updated locator
49
+ def set_wait_for_enabled: (bool value) -> Puppeteer::Locator
50
+
51
+ # @rbs value: bool -- Whether to ensure element is in viewport
52
+ # @rbs return: Puppeteer::Locator -- Updated locator
53
+ def set_ensure_element_is_in_the_viewport: (bool value) -> Puppeteer::Locator
54
+
55
+ # @rbs value: bool -- Whether to wait for stable bounding box
56
+ # @rbs return: Puppeteer::Locator -- Updated locator
57
+ def set_wait_for_stable_bounding_box: (bool value) -> Puppeteer::Locator
58
+
59
+ # @rbs locator: Puppeteer::Locator -- Locator to copy options from
60
+ # @rbs return: self -- Locator with copied options
61
+ def copy_options: (Puppeteer::Locator locator) -> self
62
+
63
+ # @rbs return: Puppeteer::Locator -- Cloned locator
64
+ def clone: (?freeze: untyped) -> Puppeteer::Locator
65
+
66
+ # @rbs return: Puppeteer::JSHandle -- Handle for located value
67
+ def wait_handle: () -> Puppeteer::JSHandle
68
+
69
+ # @rbs return: untyped -- JSON-serializable value
70
+ def wait: () -> untyped
71
+
72
+ # @rbs mapper: String -- JS mapper function
73
+ # @rbs return: Puppeteer::Locator -- Mapped locator
74
+ def map: (String mapper) -> Puppeteer::Locator
75
+
76
+ # @rbs predicate: String -- JS predicate function
77
+ # @rbs return: Puppeteer::Locator -- Filtered locator
78
+ def filter: (String predicate) -> Puppeteer::Locator
79
+
80
+ # @rbs predicate: Proc -- Handle predicate
81
+ # @rbs return: Puppeteer::Locator -- Filtered locator
82
+ def filter_handle: (Proc predicate) -> Puppeteer::Locator
83
+
84
+ # @rbs mapper: Proc -- Handle mapper
85
+ # @rbs return: Puppeteer::Locator -- Mapped locator
86
+ def map_handle: (Proc mapper) -> Puppeteer::Locator
87
+
88
+ # @rbs delay: Numeric? -- Delay between down and up (ms)
89
+ # @rbs button: String? -- Mouse button
90
+ # @rbs click_count: Integer? -- Deprecated click count
91
+ # @rbs count: Integer? -- Number of clicks
92
+ # @rbs offset: Hash[Symbol, Numeric]? -- Click offset
93
+ # @rbs return: void -- No return value
94
+ def click: (?delay: Numeric?, ?button: String?, ?click_count: Integer?, ?count: Integer?, ?offset: Hash[Symbol, Numeric]?) -> void
95
+
96
+ # @rbs value: String -- Value to fill
97
+ # @rbs return: void -- No return value
98
+ def fill: (String value) -> void
99
+
100
+ # @rbs return: void -- No return value
101
+ def hover: () -> void
102
+
103
+ # @rbs scroll_top: Numeric? -- Scroll top position
104
+ # @rbs scroll_left: Numeric? -- Scroll left position
105
+ # @rbs return: void -- No return value
106
+ def scroll: (?scroll_top: Numeric?, ?scroll_left: Numeric?) -> void
107
+
108
+ # @rbs event_name: String -- Event name
109
+ # @rbs block: Proc -- Event handler
110
+ # @rbs return: Puppeteer::Locator -- Locator for chaining
111
+ def on: (String event_name) ?{ (?) -> untyped } -> Puppeteer::Locator
112
+
113
+ # @rbs event_name: String -- Event name
114
+ # @rbs block: Proc -- Event handler
115
+ # @rbs return: Puppeteer::Locator -- Locator for chaining
116
+ def once: (String event_name) ?{ (?) -> untyped } -> Puppeteer::Locator
117
+
118
+ def _clone: () -> untyped
119
+
120
+ def _wait: (untyped _options) -> untyped
121
+
122
+ private def perform_action: (untyped name, conditions: untyped) ?{ (?) -> untyped } -> untyped
123
+
124
+ private def with_retry: (untyped _name) ?{ (?) -> untyped } -> untyped
125
+
126
+ private def build_action_options: (untyped timeout_controller) -> untyped
127
+
128
+ private def run_conditions: (untyped handle, untyped options, untyped conditions) -> untyped
129
+
130
+ private def wait_for_enabled_if_needed: (untyped handle, untyped options) -> untyped
131
+
132
+ private def wait_for_stable_bounding_box_if_needed: (untyped handle, untyped options) -> untyped
133
+
134
+ private def ensure_element_is_in_viewport_if_needed: (untyped handle, untyped options) -> untyped
135
+
136
+ private def fill_element: (untyped handle, untyped value) -> untyped
137
+ end
138
+
139
+ class Puppeteer::FunctionLocator < Puppeteer::Locator
140
+ # @rbs page_or_frame: Puppeteer::Page | Puppeteer::Frame -- Page or frame
141
+ # @rbs func: String -- JS function to evaluate
142
+ # @rbs return: Puppeteer::Locator -- Function locator
143
+ def self.create: (Puppeteer::Page | Puppeteer::Frame page_or_frame, String func) -> Puppeteer::Locator
144
+
145
+ def initialize: (untyped page_or_frame, untyped func) -> untyped
146
+
147
+ def _clone: () -> untyped
148
+
149
+ def _wait: (untyped options) -> untyped
150
+
151
+ def self.default_timeout_for: (untyped page_or_frame) -> untyped
152
+ end
153
+
154
+ class Puppeteer::DelegatedLocator < Puppeteer::Locator
155
+ def initialize: (untyped delegate) -> untyped
156
+
157
+ def delegate: () -> untyped
158
+
159
+ def set_timeout: (untyped timeout) -> untyped
160
+
161
+ def set_visibility: (untyped visibility) -> untyped
162
+
163
+ def set_wait_for_enabled: (untyped value) -> untyped
164
+
165
+ def set_ensure_element_is_in_the_viewport: (untyped value) -> untyped
166
+
167
+ def set_wait_for_stable_bounding_box: (untyped value) -> untyped
168
+
169
+ def _clone: () -> untyped
170
+
171
+ def _wait: (untyped _options) -> untyped
172
+ end
173
+
174
+ class Puppeteer::FilteredLocator < Puppeteer::DelegatedLocator
175
+ def initialize: (untyped base, untyped predicate) -> untyped
176
+
177
+ def _clone: () -> untyped
178
+
179
+ def _wait: (untyped options) -> untyped
180
+ end
181
+
182
+ class Puppeteer::MappedLocator < Puppeteer::DelegatedLocator
183
+ def initialize: (untyped base, untyped mapper) -> untyped
184
+
185
+ def _clone: () -> untyped
186
+
187
+ def _wait: (untyped options) -> untyped
188
+ end
189
+
190
+ class Puppeteer::NodeLocator < Puppeteer::Locator
191
+ # @rbs page_or_frame: Puppeteer::Page | Puppeteer::Frame -- Page or frame
192
+ # @rbs selector: String -- Selector
193
+ # @rbs return: Puppeteer::Locator -- Node locator
194
+ def self.create: (Puppeteer::Page | Puppeteer::Frame page_or_frame, String selector) -> Puppeteer::Locator
195
+
196
+ # @rbs page_or_frame: Puppeteer::Page | Puppeteer::Frame -- Page or frame
197
+ # @rbs handle: Puppeteer::ElementHandle -- Element handle
198
+ # @rbs return: Puppeteer::Locator -- Node locator
199
+ def self.create_from_handle: (Puppeteer::Page | Puppeteer::Frame page_or_frame, Puppeteer::ElementHandle handle) -> Puppeteer::Locator
200
+
201
+ def initialize: (untyped page_or_frame, untyped selector_or_handle) -> untyped
202
+
203
+ def _clone: () -> untyped
204
+
205
+ def _wait: (untyped options) -> untyped
206
+
207
+ private def wait_for_visibility_if_needed: (untyped handle, untyped options) -> untyped
208
+
209
+ def self.default_timeout_for: (untyped page_or_frame) -> untyped
210
+ end
211
+
212
+ class Puppeteer::RaceLocator < Puppeteer::Locator
213
+ def self.create: (untyped locators) -> untyped
214
+
215
+ def initialize: (untyped locators) -> untyped
216
+
217
+ def _clone: () -> untyped
218
+
219
+ def _wait: (untyped options) -> untyped
220
+
221
+ def self.check_locator_array: (untyped locators) -> untyped
222
+ end
@@ -0,0 +1,73 @@
1
+ # Generated from lib/puppeteer/p_query_handler.rb with RBS::Inline
2
+
3
+ class Puppeteer::PQueryHandler
4
+ POLLING_DEFAULT_SECONDS: ::Float
5
+
6
+ CSS_QUERY_SELECTOR_JS: ::String
7
+
8
+ PIERCE_JS: ::String
9
+
10
+ PIERCE_ALL_JS: ::String
11
+
12
+ DOM_SORT_JS: ::String
13
+
14
+ # @rbs query_handler_manager: untyped -- Query handler manager
15
+ # @rbs return: void -- No return value
16
+ def initialize: (?query_handler_manager: untyped) -> void
17
+
18
+ # @rbs element: Puppeteer::ElementHandle -- Root element
19
+ # @rbs selector: String -- PSelector string
20
+ # @rbs return: Puppeteer::ElementHandle? -- First matching element
21
+ def query_one: (Puppeteer::ElementHandle element, String selector) -> Puppeteer::ElementHandle?
22
+
23
+ # @rbs element: Puppeteer::ElementHandle -- Root element
24
+ # @rbs selector: String -- PSelector string
25
+ # @rbs return: Array[Puppeteer::ElementHandle] -- Matching elements
26
+ def query_all: (Puppeteer::ElementHandle element, String selector) -> Array[Puppeteer::ElementHandle]
27
+
28
+ # @rbs element: Puppeteer::ElementHandle -- Root element
29
+ # @rbs selector: String -- PSelector string
30
+ # @rbs return: Puppeteer::JSHandle -- Handle to array of elements
31
+ def query_all_array: (Puppeteer::ElementHandle element, String selector) -> Puppeteer::JSHandle
32
+
33
+ # @rbs element_or_frame: Puppeteer::ElementHandle | Puppeteer::Frame -- Root element or frame
34
+ # @rbs selector: String -- PSelector string
35
+ # @rbs visible: bool? -- Wait for element to be visible
36
+ # @rbs hidden: bool? -- Wait for element to be hidden
37
+ # @rbs timeout: Numeric? -- Timeout in milliseconds
38
+ # @rbs polling: (String | Numeric | nil) -- Polling strategy
39
+ # @rbs return: Puppeteer::ElementHandle? -- Matching element
40
+ def wait_for: (Puppeteer::ElementHandle | Puppeteer::Frame element_or_frame, String selector, visible: bool?, hidden: bool?, timeout: Numeric?, ?polling: String | Numeric | nil) -> Puppeteer::ElementHandle?
41
+
42
+ private
43
+
44
+ def run_complex_selector: (untyped root, untyped complex) -> untyped
45
+
46
+ def apply_compound: (untyped elements, untyped compound) -> untyped
47
+
48
+ def apply_css_selector: (untyped elements, untyped selector) -> untyped
49
+
50
+ def query_css_selector: (untyped element, untyped selector) -> untyped
51
+
52
+ def apply_pseudo_selector: (untyped elements, untyped pseudo) -> untyped
53
+
54
+ def query_handler_for_pseudo: (untyped name) -> untyped
55
+
56
+ def pierce: (untyped elements) -> untyped
57
+
58
+ def pierce_all: (untyped elements) -> untyped
59
+
60
+ def dom_sort: (untyped elements) -> untyped
61
+
62
+ def array_handle_to_elements: (untyped array_handle) -> untyped
63
+
64
+ def ensure_context: (untyped handle, untyped context) -> untyped
65
+
66
+ def transfer_handle: (untyped frame, untyped handle) -> untyped
67
+
68
+ def polling_interval_seconds: (untyped polling, visible: untyped, hidden: untyped) -> untyped
69
+
70
+ def monotonic_time: () -> untyped
71
+
72
+ def raise_timeout: (untyped selector) -> untyped
73
+ end
@@ -0,0 +1,31 @@
1
+ # Generated from lib/puppeteer/p_selector_parser.rb with RBS::Inline
2
+
3
+ module Puppeteer
4
+ module PSelectorParser
5
+ class PseudoSelector
6
+ attr_reader name: untyped
7
+
8
+ attr_reader value: untyped
9
+
10
+ def initialize: (name: untyped, value: untyped) -> untyped
11
+ end
12
+
13
+ PSEUDO_PREFIX: ::String
14
+
15
+ # @rbs selector: String -- Selector to parse
16
+ # @rbs return: [Array[untyped], bool, bool, bool] -- Parsed selectors and flags
17
+ def self.parse: (String selector) -> [ Array[untyped], bool, bool, bool ]
18
+
19
+ def self.flush_storage: (untyped storage, untyped compound) -> untyped
20
+
21
+ def self.parse_name: (untyped selector, untyped index) -> untyped
22
+
23
+ def self.skip_spaces: (untyped selector, untyped index) -> untyped
24
+
25
+ def self.parse_argument: (untyped selector, untyped index) -> untyped
26
+
27
+ def self.starts_with_at?: (untyped selector, untyped index, untyped token) -> untyped
28
+
29
+ def self.unquote: (untyped text) -> untyped
30
+ end
31
+ end
@@ -138,6 +138,13 @@ class Puppeteer::Page
138
138
  # @rbs return: void -- No return value
139
139
  def default_timeout=: (Numeric? timeout) -> void
140
140
 
141
+ # @rbs return: Numeric -- Default timeout in milliseconds
142
+ def default_timeout: () -> Numeric
143
+
144
+ # @rbs selector_or_function: String -- Selector or JS function
145
+ # @rbs return: Puppeteer::Locator -- Locator for selector or function
146
+ def locator: (String selector_or_function) -> Puppeteer::Locator
147
+
141
148
  # `$()` in JavaScript.
142
149
  # @rbs selector: String -- CSS selector
143
150
  # @rbs return: Puppeteer::ElementHandle? -- Matching element or nil
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.50.0.alpha5
4
+ version: 0.50.0.alpha6
5
5
  platform: ruby
6
6
  authors:
7
7
  - YusukeIwaki
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-01-22 00:00:00.000000000 Z
11
+ date: 2026-01-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: async
@@ -360,11 +360,14 @@ files:
360
360
  - lib/puppeteer/launcher/chrome_arg_options.rb
361
361
  - lib/puppeteer/launcher/launch_options.rb
362
362
  - lib/puppeteer/lifecycle_watcher.rb
363
+ - lib/puppeteer/locators.rb
363
364
  - lib/puppeteer/mouse.rb
364
365
  - lib/puppeteer/network_condition.rb
365
366
  - lib/puppeteer/network_conditions.rb
366
367
  - lib/puppeteer/network_event_manager.rb
367
368
  - lib/puppeteer/network_manager.rb
369
+ - lib/puppeteer/p_query_handler.rb
370
+ - lib/puppeteer/p_selector_parser.rb
368
371
  - lib/puppeteer/page.rb
369
372
  - lib/puppeteer/page/metrics.rb
370
373
  - lib/puppeteer/page/pdf_options.rb
@@ -402,7 +405,10 @@ files:
402
405
  - sig/puppeteer/http_response.rbs
403
406
  - sig/puppeteer/js_handle.rbs
404
407
  - sig/puppeteer/keyboard.rbs
408
+ - sig/puppeteer/locators.rbs
405
409
  - sig/puppeteer/mouse.rbs
410
+ - sig/puppeteer/p_query_handler.rbs
411
+ - sig/puppeteer/p_selector_parser.rbs
406
412
  - sig/puppeteer/page.rbs
407
413
  - sig/puppeteer/puppeteer.rbs
408
414
  - sig/puppeteer/remote_object.rbs