playwright-ruby-client 0.6.3 → 0.6.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/documentation/docs/api/browser.md +2 -1
- data/documentation/docs/api/browser_context.md +1 -1
- data/documentation/docs/api/browser_type.md +1 -1
- data/documentation/docs/api/experimental/android.md +3 -2
- data/documentation/docs/api/tracing.md +8 -15
- data/documentation/docs/article/guides/rails_integration.md +43 -0
- data/documentation/docs/article/guides/recording_video.md +79 -0
- data/documentation/docs/include/api_coverage.md +0 -1
- data/documentation/package.json +1 -1
- data/documentation/yarn.lock +478 -498
- data/lib/playwright/channel_owners/browser.rb +14 -10
- data/lib/playwright/channel_owners/browser_context.rb +9 -2
- data/lib/playwright/channel_owners/browser_type.rb +5 -8
- data/lib/playwright/tracing_impl.rb +9 -9
- data/lib/playwright/version.rb +1 -1
- data/lib/playwright_api/android.rb +3 -2
- data/lib/playwright_api/browser.rb +3 -2
- data/lib/playwright_api/browser_context.rb +2 -2
- data/lib/playwright_api/browser_type.rb +3 -3
- data/lib/playwright_api/tracing.rb +6 -12
- metadata +3 -2
@@ -30,24 +30,28 @@ module Playwright
|
|
30
30
|
@contexts << context
|
31
31
|
context.browser = self
|
32
32
|
context.options = params
|
33
|
+
return context unless block
|
33
34
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
context.close
|
39
|
-
end
|
40
|
-
else
|
41
|
-
context
|
35
|
+
begin
|
36
|
+
block.call(context)
|
37
|
+
ensure
|
38
|
+
context.close
|
42
39
|
end
|
43
40
|
end
|
44
41
|
|
45
|
-
def new_page(**options)
|
42
|
+
def new_page(**options, &block)
|
46
43
|
context = new_context(**options)
|
47
44
|
page = context.new_page
|
48
45
|
page.owned_context = context
|
49
46
|
context.owner_page = page
|
50
|
-
|
47
|
+
|
48
|
+
return page unless block
|
49
|
+
|
50
|
+
begin
|
51
|
+
block.call(page)
|
52
|
+
ensure
|
53
|
+
page.close
|
54
|
+
end
|
51
55
|
end
|
52
56
|
|
53
57
|
def close
|
@@ -113,10 +113,17 @@ module Playwright
|
|
113
113
|
end
|
114
114
|
|
115
115
|
# @returns [Playwright::Page]
|
116
|
-
def new_page
|
116
|
+
def new_page(&block)
|
117
117
|
raise 'Please use browser.new_context' if @owner_page
|
118
118
|
resp = @channel.send_message_to_server('newPage')
|
119
|
-
ChannelOwners::Page.from(resp)
|
119
|
+
page = ChannelOwners::Page.from(resp)
|
120
|
+
return page unless block
|
121
|
+
|
122
|
+
begin
|
123
|
+
block.call(page)
|
124
|
+
ensure
|
125
|
+
page.close
|
126
|
+
end
|
120
127
|
end
|
121
128
|
|
122
129
|
def cookies(urls: nil)
|
@@ -11,15 +11,12 @@ module Playwright
|
|
11
11
|
def launch(options, &block)
|
12
12
|
resp = @channel.send_message_to_server('launch', options.compact)
|
13
13
|
browser = ChannelOwners::Browser.from(resp)
|
14
|
+
return browser unless block
|
14
15
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
browser.close
|
20
|
-
end
|
21
|
-
else
|
22
|
-
browser
|
16
|
+
begin
|
17
|
+
block.call(browser)
|
18
|
+
ensure
|
19
|
+
browser.close
|
23
20
|
end
|
24
21
|
end
|
25
22
|
|
@@ -15,17 +15,17 @@ module Playwright
|
|
15
15
|
end
|
16
16
|
|
17
17
|
# Stop tracing.
|
18
|
-
def stop
|
18
|
+
def stop(path: nil)
|
19
19
|
@channel.send_message_to_server('tracingStop')
|
20
|
-
end
|
21
20
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
21
|
+
if path
|
22
|
+
resp = @channel.send_message_to_server('tracingExport')
|
23
|
+
artifact = ChannelOwners::Artifact.from(resp)
|
24
|
+
# if self._context._browser:
|
25
|
+
# artifact._is_remote = self._context._browser._is_remote
|
26
|
+
artifact.save_as(path)
|
27
|
+
artifact.delete
|
28
|
+
end
|
29
29
|
end
|
30
30
|
end
|
31
31
|
end
|
data/lib/playwright/version.rb
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
module Playwright
|
2
|
-
# Playwright has **experimental** support for Android automation.
|
2
|
+
# Playwright has **experimental** support for Android automation. See [here](./mobile.md) for more information. You can
|
3
|
+
# access android namespace via:
|
3
4
|
#
|
4
5
|
# An example of the Android automation script would be:
|
5
6
|
#
|
6
7
|
# Note that since you don't need Playwright to install web browsers when testing Android, you can omit browser download
|
7
8
|
# via setting the following environment variable when installing Playwright:
|
8
9
|
#
|
9
|
-
# ```
|
10
|
+
# ```bash js
|
10
11
|
# PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm i -D playwright
|
11
12
|
# ```
|
12
13
|
class Android < PlaywrightApi
|
@@ -125,8 +125,9 @@ module Playwright
|
|
125
125
|
storageState: nil,
|
126
126
|
timezoneId: nil,
|
127
127
|
userAgent: nil,
|
128
|
-
viewport: nil
|
129
|
-
|
128
|
+
viewport: nil,
|
129
|
+
&block)
|
130
|
+
wrap_impl(@impl.new_page(acceptDownloads: unwrap_impl(acceptDownloads), bypassCSP: unwrap_impl(bypassCSP), colorScheme: unwrap_impl(colorScheme), deviceScaleFactor: unwrap_impl(deviceScaleFactor), extraHTTPHeaders: unwrap_impl(extraHTTPHeaders), geolocation: unwrap_impl(geolocation), hasTouch: unwrap_impl(hasTouch), httpCredentials: unwrap_impl(httpCredentials), ignoreHTTPSErrors: unwrap_impl(ignoreHTTPSErrors), isMobile: unwrap_impl(isMobile), javaScriptEnabled: unwrap_impl(javaScriptEnabled), locale: unwrap_impl(locale), noViewport: unwrap_impl(noViewport), offline: unwrap_impl(offline), permissions: unwrap_impl(permissions), proxy: unwrap_impl(proxy), record_har_omit_content: unwrap_impl(record_har_omit_content), record_har_path: unwrap_impl(record_har_path), record_video_dir: unwrap_impl(record_video_dir), record_video_size: unwrap_impl(record_video_size), reducedMotion: unwrap_impl(reducedMotion), screen: unwrap_impl(screen), storageState: unwrap_impl(storageState), timezoneId: unwrap_impl(timezoneId), userAgent: unwrap_impl(userAgent), viewport: unwrap_impl(viewport), &wrap_block_call(block)))
|
130
131
|
end
|
131
132
|
|
132
133
|
# > NOTE: Tracing is only supported on Chromium-based browsers.
|
@@ -208,8 +208,8 @@ module Playwright
|
|
208
208
|
end
|
209
209
|
|
210
210
|
# Creates a new page in the browser context.
|
211
|
-
def new_page
|
212
|
-
wrap_impl(@impl.new_page)
|
211
|
+
def new_page(&block)
|
212
|
+
wrap_impl(@impl.new_page(&wrap_block_call(block)))
|
213
213
|
end
|
214
214
|
|
215
215
|
# Returns all open pages in the context.
|
@@ -83,9 +83,9 @@ module Playwright
|
|
83
83
|
proxy: nil,
|
84
84
|
slowMo: nil,
|
85
85
|
timeout: nil,
|
86
|
-
|
86
|
+
tracesDir: nil,
|
87
87
|
&block)
|
88
|
-
wrap_impl(@impl.launch(args: unwrap_impl(args), channel: unwrap_impl(channel), chromiumSandbox: unwrap_impl(chromiumSandbox), devtools: unwrap_impl(devtools), downloadsPath: unwrap_impl(downloadsPath), env: unwrap_impl(env), executablePath: unwrap_impl(executablePath), firefoxUserPrefs: unwrap_impl(firefoxUserPrefs), handleSIGHUP: unwrap_impl(handleSIGHUP), handleSIGINT: unwrap_impl(handleSIGINT), handleSIGTERM: unwrap_impl(handleSIGTERM), headless: unwrap_impl(headless), ignoreDefaultArgs: unwrap_impl(ignoreDefaultArgs), proxy: unwrap_impl(proxy), slowMo: unwrap_impl(slowMo), timeout: unwrap_impl(timeout),
|
88
|
+
wrap_impl(@impl.launch(args: unwrap_impl(args), channel: unwrap_impl(channel), chromiumSandbox: unwrap_impl(chromiumSandbox), devtools: unwrap_impl(devtools), downloadsPath: unwrap_impl(downloadsPath), env: unwrap_impl(env), executablePath: unwrap_impl(executablePath), firefoxUserPrefs: unwrap_impl(firefoxUserPrefs), handleSIGHUP: unwrap_impl(handleSIGHUP), handleSIGINT: unwrap_impl(handleSIGINT), handleSIGTERM: unwrap_impl(handleSIGTERM), headless: unwrap_impl(headless), ignoreDefaultArgs: unwrap_impl(ignoreDefaultArgs), proxy: unwrap_impl(proxy), slowMo: unwrap_impl(slowMo), timeout: unwrap_impl(timeout), tracesDir: unwrap_impl(tracesDir), &wrap_block_call(block)))
|
89
89
|
end
|
90
90
|
|
91
91
|
# Returns the persistent browser context instance.
|
@@ -131,7 +131,7 @@ module Playwright
|
|
131
131
|
slowMo: nil,
|
132
132
|
timeout: nil,
|
133
133
|
timezoneId: nil,
|
134
|
-
|
134
|
+
tracesDir: nil,
|
135
135
|
userAgent: nil,
|
136
136
|
viewport: nil)
|
137
137
|
raise NotImplementedError.new('launch_persistent_context is not implemented yet.')
|
@@ -5,35 +5,29 @@ module Playwright
|
|
5
5
|
# Start with specifying the folder traces will be stored in:
|
6
6
|
#
|
7
7
|
# ```python sync
|
8
|
-
# browser = chromium.launch(
|
8
|
+
# browser = chromium.launch()
|
9
9
|
# context = browser.new_context()
|
10
|
-
# context.tracing.start(
|
10
|
+
# context.tracing.start(screenshots=True, snapshots=True)
|
11
11
|
# page.goto("https://playwright.dev")
|
12
|
-
# context.tracing.stop()
|
13
|
-
# context.tracing.export("trace.zip")
|
12
|
+
# context.tracing.stop(path = "trace.zip")
|
14
13
|
# ```
|
15
14
|
class Tracing < PlaywrightApi
|
16
15
|
|
17
|
-
# Export trace into the file with the given name. Should be called after the tracing has stopped.
|
18
|
-
def export(path)
|
19
|
-
wrap_impl(@impl.export(unwrap_impl(path)))
|
20
|
-
end
|
21
|
-
|
22
16
|
# Start tracing.
|
23
17
|
#
|
24
18
|
# ```python sync
|
25
19
|
# context.tracing.start(name="trace", screenshots=True, snapshots=True)
|
26
20
|
# page.goto("https://playwright.dev")
|
27
21
|
# context.tracing.stop()
|
28
|
-
# context.tracing.
|
22
|
+
# context.tracing.stop(path = "trace.zip")
|
29
23
|
# ```
|
30
24
|
def start(name: nil, screenshots: nil, snapshots: nil)
|
31
25
|
wrap_impl(@impl.start(name: unwrap_impl(name), screenshots: unwrap_impl(screenshots), snapshots: unwrap_impl(snapshots)))
|
32
26
|
end
|
33
27
|
|
34
28
|
# Stop tracing.
|
35
|
-
def stop
|
36
|
-
wrap_impl(@impl.stop)
|
29
|
+
def stop(path: nil)
|
30
|
+
wrap_impl(@impl.stop(path: unwrap_impl(path)))
|
37
31
|
end
|
38
32
|
end
|
39
33
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: playwright-ruby-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- YusukeIwaki
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-06-
|
11
|
+
date: 2021-06-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: concurrent-ruby
|
@@ -230,6 +230,7 @@ files:
|
|
230
230
|
- documentation/docs/article/guides/download_playwright_driver.md
|
231
231
|
- documentation/docs/article/guides/launch_browser.md
|
232
232
|
- documentation/docs/article/guides/rails_integration.md
|
233
|
+
- documentation/docs/article/guides/recording_video.md
|
233
234
|
- documentation/docs/include/api_coverage.md
|
234
235
|
- documentation/docusaurus.config.js
|
235
236
|
- documentation/package.json
|