puppeteer-ruby 0.29.0 → 0.31.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2b852a48cd11f269c3b4eec0a85583b120a5cd1b0bc204e27a6ec0e365aa33dd
4
- data.tar.gz: 8864c21fe02f6e3fcbb07c6c009516e91273ecfe0636437bc41015187e9985ad
3
+ metadata.gz: ff91cc32cf078ad68ba001f02b0f9f3e614778e3b40f0622fd63570a6915ad52
4
+ data.tar.gz: b12ef40943838b16f0cafc9f7cc2b0c046bab5dc03e99729f8726cc912fbbef8
5
5
  SHA512:
6
- metadata.gz: dd3cdb6d7b64b0b6f6e2568eb83cad62f36ea45943f0df9cd434c6e30221ccd47b161a0368cbe02cacf4a6a3c6c6ecf293bd1313829d7f02daed5d1d2c5c9f73
7
- data.tar.gz: 541c2dffa4c6359dff6c2d9d03e70a039057d554c1ee6509d0574d194f17a6407a968c30153bae850f8c4c0e9fa7ade7beaea2dcc8d136a896e80b22831a436f
6
+ metadata.gz: a84bdfa144789d50926e0d2177711b7ff43f025948e6832b11c7105a3923c84597909bd142db54cac1b09c4ede013bd6f9b94a991888d0c4c420aaf5c2f4511b
7
+ data.tar.gz: 6558efa9f6ba92544a236aa17a9e879332ab2f03bbc2115e2035930b15b5ebb8a5d85b93558f961a8ee9258c22a766ce4fc9baf45a586c6836dede1511bab6dd
data/CHANGELOG.md CHANGED
@@ -1,14 +1,47 @@
1
- ### master [[diff](https://github.com/YusukeIwaki/puppeteer-ruby/compare/0.29.0...master)]
1
+ ### master [[diff](https://github.com/YusukeIwaki/puppeteer-ruby/compare/0.31.4...master)]
2
2
 
3
3
  * xxx
4
4
 
5
+ ### 0.31.4 [[diff](https://github.com/YusukeIwaki/puppeteer-ruby/compare/0.31.3...0.31.4)]
6
+
7
+ Bugfix:
8
+
9
+ * Fix PDF options (format, margin, omit_background) to work.
10
+
11
+ ### 0.31.3 [[diff](https://github.com/YusukeIwaki/puppeteer-ruby/compare/0.31.1...0.31.3)]
12
+
13
+ Bugfix:
14
+
15
+ * Fix `wait_for_selector` to work. *It is strongly recommended to update for 0.29.0-0.31.x users.*
16
+
17
+ ### 0.31.1 [[diff](https://github.com/YusukeIwaki/puppeteer-ruby/compare/0.31.0...0.31.1)]
18
+
19
+ Bugfix:
20
+
21
+ * Fix `Page#pdf` to work on Windows.
22
+
23
+ ### 0.31.0 [[diff](https://github.com/YusukeIwaki/puppeteer-ruby/compare/0.30.0...0.31.0)]
24
+
25
+ New features:
26
+
27
+ * Now puppeteer-ruby is compatible with Windows
28
+
29
+ Bugfix:
30
+
31
+ * Fix `Page#add_script_tag` and `Page#add_style_tag` to work
32
+
33
+ ### 0.30.0 [[diff](https://github.com/YusukeIwaki/puppeteer-ruby/compare/0.29.0...0.30.0)]
34
+
35
+ New features:
36
+
37
+ * S, SS, Seval, SSeval is renamed to query_selector, query_selector_all, eval_on_selector, eval_on_selector_all
38
+
5
39
  ### 0.29.0 [[diff](https://github.com/YusukeIwaki/puppeteer-ruby/compare/0.28.1...0.29.0)]
6
40
 
7
41
  New features:
8
42
 
9
43
  * Add `AriaQueryHandler`. Now we can use "aria/...." for selectors.
10
44
 
11
-
12
45
  ### 0.28.1 [[diff](https://github.com/YusukeIwaki/puppeteer-ruby/compare/0.0.27...0.28.1)]
13
46
 
14
47
  New features:
data/README.md CHANGED
@@ -6,7 +6,7 @@ A Ruby port of [puppeteer](https://pptr.dev/).
6
6
 
7
7
  ![logo](puppeteer-ruby.png)
8
8
 
9
- REMARK: This Gem covers just a part of Puppeteer APIs. Feedbacks and feature requests are welcome :)
9
+ REMARK: This Gem covers just a part of Puppeteer APIs. See [API Coverage list](./docs/api_coverage.md) for detail. Feedbacks and feature requests are welcome :)
10
10
 
11
11
  ## Getting Started
12
12
 
@@ -29,6 +29,8 @@ Or install it yourself as:
29
29
  ### Capture a site
30
30
 
31
31
  ```ruby
32
+ require 'puppeteer'
33
+
32
34
  Puppeteer.launch(headless: false) do |browser|
33
35
  page = browser.pages.first || browser.new_page
34
36
  page.goto("https://github.com/YusukeIwaki")
@@ -46,18 +48,18 @@ Puppeteer.launch(headless: false, slow_mo: 50, args: ['--guest', '--window-size=
46
48
  page.viewport = Puppeteer::Viewport.new(width: 1280, height: 800)
47
49
  page.goto("https://github.com/", wait_until: 'domcontentloaded')
48
50
 
49
- form = page.S("form.js-site-search-form")
50
- searchInput = form.S("input.header-search-input")
51
+ form = page.query_selector("form.js-site-search-form")
52
+ searchInput = form.query_selector("input.header-search-input")
51
53
  searchInput.type_text("puppeteer")
52
54
  await_all(
53
55
  page.async_wait_for_navigation,
54
56
  searchInput.async_press("Enter"),
55
57
  )
56
58
 
57
- list = page.S("ul.repo-list")
58
- items = list.SS("div.f4")
59
+ list = page.query_selector("ul.repo-list")
60
+ items = list.query_selector_all("div.f4")
59
61
  items.each do |item|
60
- title = item.Seval("a", "a => a.innerText")
62
+ title = item.eval_on_selector("a", "a => a.innerText")
61
63
  puts("==> #{title}")
62
64
  end
63
65
  end
@@ -66,6 +68,8 @@ end
66
68
  ### Evaluate JavaScript
67
69
 
68
70
  ```ruby
71
+ require 'puppeteer'
72
+
69
73
  Puppeteer.launch do |browser|
70
74
  page = browser.pages.last || browser.new_page
71
75
  page.goto 'https://github.com/YusukeIwaki'
@@ -130,7 +134,7 @@ RSpec.describe 'hotel.testplanisphere.dev', type: :feature do
130
134
  puppeteer_page = @browser.pages.first
131
135
  puppeteer_page.wait_for_selector('li.nav-item')
132
136
 
133
- reservation_link = puppeteer_page.SS('li.nav-item')[1]
137
+ reservation_link = puppeteer_page.query_selector_all('li.nav-item')[1]
134
138
 
135
139
  await_all(
136
140
  puppeteer_page.async_wait_for_navigation,
@@ -147,7 +151,7 @@ RSpec.describe 'hotel.testplanisphere.dev', type: :feature do
147
151
 
148
152
  # expectation with puppeteer
149
153
  puppeteer_page = @browser.pages.first
150
- body_text = puppeteer_page.Seval('body', '(el) => el.textContent')
154
+ body_text = puppeteer_page.eval_on_selector('body', '(el) => el.textContent')
151
155
  expect(body_text).to include('宿泊プラン一覧')
152
156
  end
153
157
  ```
@@ -0,0 +1,359 @@
1
+ # API coverages
2
+ - Puppeteer version: v8.0.0
3
+ - puppeteer-ruby version: 0.31.4
4
+
5
+ ## Puppeteer
6
+
7
+ * ~~clearCustomQueryHandlers~~
8
+ * connect
9
+ * ~~createBrowserFetcher~~
10
+ * ~~customQueryHandlerNames~~
11
+ * defaultArgs => `#default_args`
12
+ * devices
13
+ * ~~errors~~
14
+ * executablePath => `#executable_path`
15
+ * launch
16
+ * ~~networkConditions~~
17
+ * product
18
+ * ~~registerCustomQueryHandler~~
19
+ * ~~unregisterCustomQueryHandler~~
20
+
21
+ ## ~~BrowserFetcher~~
22
+
23
+ * ~~canDownload~~
24
+ * ~~download~~
25
+ * ~~host~~
26
+ * ~~localRevisions~~
27
+ * ~~platform~~
28
+ * ~~product~~
29
+ * ~~remove~~
30
+ * ~~revisionInfo~~
31
+
32
+ ## Browser
33
+
34
+ * browserContexts => `#browser_contexts`
35
+ * close
36
+ * createIncognitoBrowserContext => `#create_incognito_browser_context`
37
+ * defaultBrowserContext => `#default_browser_context`
38
+ * disconnect
39
+ * isConnected => `#connected?`
40
+ * newPage => `#new_page`
41
+ * pages
42
+ * process
43
+ * target
44
+ * targets
45
+ * userAgent => `#user_agent`
46
+ * version
47
+ * waitForTarget => `#wait_for_target`
48
+ * wsEndpoint => `#ws_endpoint`
49
+
50
+ ## BrowserContext
51
+
52
+ * browser
53
+ * clearPermissionOverrides => `#clear_permission_overrides`
54
+ * close
55
+ * isIncognito => `#incognito?`
56
+ * newPage => `#new_page`
57
+ * overridePermissions => `#override_permissions`
58
+ * pages
59
+ * targets
60
+ * waitForTarget => `#wait_for_target`
61
+
62
+ ## Page
63
+
64
+ * $ => `#query_selector`
65
+ * $$ => `#query_selector_all`
66
+ * $$eval => `#eval_on_selector_all`
67
+ * $eval => `#eval_on_selector`
68
+ * $x => `#Sx`
69
+ * accessibility
70
+ * addScriptTag => `#add_script_tag`
71
+ * addStyleTag => `#add_style_tag`
72
+ * authenticate
73
+ * ~~bringToFront~~
74
+ * browser
75
+ * browserContext => `#browser_context`
76
+ * click
77
+ * close
78
+ * content
79
+ * cookies
80
+ * coverage
81
+ * deleteCookie => `#delete_cookie`
82
+ * emulate
83
+ * emulateIdleState => `#emulate_idle_state`
84
+ * ~~emulateMediaFeatures~~
85
+ * emulateMediaType => `#emulate_media_type`
86
+ * ~~emulateNetworkConditions~~
87
+ * emulateTimezone => `#emulate_timezone`
88
+ * ~~emulateVisionDeficiency~~
89
+ * evaluate
90
+ * evaluateHandle => `#evaluate_handle`
91
+ * evaluateOnNewDocument => `#evaluate_on_new_document`
92
+ * ~~exposeFunction~~
93
+ * focus
94
+ * frames
95
+ * goBack => `#go_back`
96
+ * goForward => `#go_forward`
97
+ * goto
98
+ * hover
99
+ * isClosed => `#closed?`
100
+ * isJavaScriptEnabled => `#javascript_enabled?`
101
+ * keyboard
102
+ * mainFrame => `#main_frame`
103
+ * ~~metrics~~
104
+ * mouse
105
+ * pdf
106
+ * queryObjects => `#query_objects`
107
+ * reload
108
+ * screenshot
109
+ * select
110
+ * setBypassCSP => `#bypass_csp=`
111
+ * setCacheEnabled => `#cache_enabled=`
112
+ * setContent => `#content=`
113
+ * setCookie => `#set_cookie`
114
+ * setDefaultNavigationTimeout => `#default_navigation_timeout=`
115
+ * setDefaultTimeout => `#default_timeout=`
116
+ * setExtraHTTPHeaders => `#extra_http_headers=`
117
+ * setGeolocation => `#geolocation=`
118
+ * setJavaScriptEnabled => `#javascript_enabled=`
119
+ * setOfflineMode => `#offline_mode=`
120
+ * setRequestInterception => `#request_interception=`
121
+ * setUserAgent => `#user_agent=`
122
+ * setViewport => `#viewport=`
123
+ * tap
124
+ * target
125
+ * title
126
+ * ~~touchscreen~~
127
+ * ~~tracing~~
128
+ * type => `#type_text`
129
+ * url
130
+ * viewport
131
+ * ~~waitFor~~
132
+ * waitForFileChooser => `#wait_for_file_chooser`
133
+ * waitForFunction => `#wait_for_function`
134
+ * waitForNavigation => `#async_wait_for_navigation`
135
+ * waitForRequest => `#async_wait_for_request`
136
+ * waitForResponse => `#async_wait_for_response`
137
+ * waitForSelector => `#wait_for_selector`
138
+ * waitForTimeout => `#wait_for_timeout`
139
+ * waitForXPath => `#wait_for_xpath`
140
+ * workers
141
+
142
+ ## ~~WebWorker~~
143
+
144
+ * ~~evaluate~~
145
+ * ~~evaluateHandle~~
146
+ * ~~executionContext~~
147
+ * ~~url~~
148
+
149
+ ## ~~Accessibility~~
150
+
151
+ * ~~snapshot~~
152
+
153
+ ## Keyboard
154
+
155
+ * down
156
+ * press
157
+ * sendCharacter => `#send_character`
158
+ * type => `#type_text`
159
+ * up
160
+
161
+ ## Mouse
162
+
163
+ * click
164
+ * down
165
+ * move
166
+ * up
167
+ * wheel
168
+
169
+ ## ~~Touchscreen~~
170
+
171
+ * ~~tap~~
172
+
173
+ ## ~~Tracing~~
174
+
175
+ * ~~start~~
176
+ * ~~stop~~
177
+
178
+ ## FileChooser
179
+
180
+ * accept
181
+ * cancel
182
+ * isMultiple => `#multiple?`
183
+
184
+ ## Dialog
185
+
186
+ * accept
187
+ * defaultValue => `#default_value`
188
+ * dismiss
189
+ * message
190
+ * type
191
+
192
+ ## ConsoleMessage
193
+
194
+ * args
195
+ * location
196
+ * ~~stackTrace~~
197
+ * text
198
+ * ~~type~~
199
+
200
+ ## Frame
201
+
202
+ * $ => `#query_selector`
203
+ * $$ => `#query_selector_all`
204
+ * $$eval => `#eval_on_selector_all`
205
+ * $eval => `#eval_on_selector`
206
+ * $x => `#Sx`
207
+ * addScriptTag => `#add_script_tag`
208
+ * addStyleTag => `#add_style_tag`
209
+ * childFrames => `#child_frames`
210
+ * click
211
+ * content
212
+ * evaluate
213
+ * evaluateHandle => `#evaluate_handle`
214
+ * executionContext => `#execution_context`
215
+ * focus
216
+ * goto
217
+ * hover
218
+ * isDetached => `#detached?`
219
+ * name
220
+ * parentFrame => `#parent_frame`
221
+ * select
222
+ * setContent => `#set_content`
223
+ * tap
224
+ * title
225
+ * type => `#type_text`
226
+ * url
227
+ * ~~waitFor~~
228
+ * waitForFunction => `#wait_for_function`
229
+ * waitForNavigation => `#async_wait_for_navigation`
230
+ * waitForSelector => `#wait_for_selector`
231
+ * waitForTimeout => `#wait_for_timeout`
232
+ * waitForXPath => `#wait_for_xpath`
233
+
234
+ ## ExecutionContext
235
+
236
+ * evaluate
237
+ * evaluateHandle => `#evaluate_handle`
238
+ * frame
239
+ * ~~queryObjects~~
240
+
241
+ ## JSHandle
242
+
243
+ * asElement => `#as_element`
244
+ * dispose
245
+ * evaluate
246
+ * evaluateHandle => `#evaluate_handle`
247
+ * executionContext => `#execution_context`
248
+ * getProperties => `#properties`
249
+ * getProperty => `#[]`
250
+ * jsonValue => `#json_value`
251
+
252
+ ## ElementHandle
253
+
254
+ * $ => `#query_selector`
255
+ * $$ => `#query_selector_all`
256
+ * $$eval => `#eval_on_selector_all`
257
+ * $eval => `#eval_on_selector`
258
+ * $x => `#Sx`
259
+ * asElement => `#as_element`
260
+ * boundingBox => `#bounding_box`
261
+ * boxModel => `#box_model`
262
+ * click
263
+ * contentFrame => `#content_frame`
264
+ * dispose
265
+ * evaluate
266
+ * evaluateHandle => `#evaluate_handle`
267
+ * executionContext => `#execution_context`
268
+ * focus
269
+ * getProperties => `#properties`
270
+ * getProperty => `#[]`
271
+ * hover
272
+ * isIntersectingViewport => `#intersecting_viewport?`
273
+ * jsonValue => `#json_value`
274
+ * press
275
+ * screenshot
276
+ * select
277
+ * tap
278
+ * ~~toString~~
279
+ * type => `#type_text`
280
+ * uploadFile => `#upload_file`
281
+
282
+ ## ~~HTTPRequest~~
283
+
284
+ * ~~abort~~
285
+ * ~~continue~~
286
+ * ~~failure~~
287
+ * ~~frame~~
288
+ * ~~headers~~
289
+ * ~~isNavigationRequest~~
290
+ * ~~method~~
291
+ * ~~postData~~
292
+ * ~~redirectChain~~
293
+ * ~~resourceType~~
294
+ * ~~respond~~
295
+ * ~~response~~
296
+ * ~~url~~
297
+
298
+ ## ~~HTTPResponse~~
299
+
300
+ * ~~buffer~~
301
+ * ~~frame~~
302
+ * ~~fromCache~~
303
+ * ~~fromServiceWorker~~
304
+ * ~~headers~~
305
+ * ~~json~~
306
+ * ~~ok~~
307
+ * ~~remoteAddress~~
308
+ * ~~request~~
309
+ * ~~securityDetails~~
310
+ * ~~status~~
311
+ * ~~statusText~~
312
+ * ~~text~~
313
+ * ~~url~~
314
+
315
+ ## ~~SecurityDetails~~
316
+
317
+ * ~~issuer~~
318
+ * ~~protocol~~
319
+ * ~~subjectAlternativeNames~~
320
+ * ~~subjectName~~
321
+ * ~~validFrom~~
322
+ * ~~validTo~~
323
+
324
+ ## Target
325
+
326
+ * browser
327
+ * browserContext => `#browser_context`
328
+ * createCDPSession => `#create_cdp_session`
329
+ * opener
330
+ * page
331
+ * type
332
+ * url
333
+ * ~~worker~~
334
+
335
+ ## CDPSession
336
+
337
+ * detach
338
+ * send
339
+
340
+ ## ~~Coverage~~
341
+
342
+ * ~~startCSSCoverage~~
343
+ * ~~startJSCoverage~~
344
+ * ~~stopCSSCoverage~~
345
+ * ~~stopJSCoverage~~
346
+
347
+ ## TimeoutError
348
+
349
+
350
+ ## ~~EventEmitter~~
351
+
352
+ * ~~addListener~~
353
+ * ~~emit~~
354
+ * ~~listenerCount~~
355
+ * ~~off~~
356
+ * ~~on~~
357
+ * ~~once~~
358
+ * ~~removeAllListeners~~
359
+ * ~~removeListener~~