Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Playwright driver to 1.36.1 #259

Merged
merged 5 commits into from
Jul 27, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion development/CLI_VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.35.0
1.36.1
491 changes: 266 additions & 225 deletions development/api.json

Large diffs are not rendered by default.

28 changes: 14 additions & 14 deletions development/generate_api/example_codes.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ def example_2e5019929403491cde0c78bed1e0e18e0c86ab423d7ac8715876c4de4814f483(pag
end

# Accessibility
def example_388652162f4e169aab346af9ea657dd96de9217cd390a4cae2090af952b7aebe(page:)
def example_3d67a99411b5f924d573427b6f54aff63f7241f2b810959b79948bd3b522404a(page:)
def find_focused_node(node)
if node['focused']
node
Expand Down Expand Up @@ -304,7 +304,7 @@ def example_aa8a83c2ddd0d9a327cfce8528c61f52cb5d6ec0f0258e03d73fad5481f15360(bro
end

# BrowserContext#route
def example_ac637e238bebf237fca2ef4fd8a2ef81644eefcf862b305de633c2fabc3b4721(browser:)
def example_ef709e5ad2c021453ff9ed1c2faedc7f9f07043c4fa503929ba2020a557ccbdf(browser:)
def handle_route(route, request)
if request.post_data["my-string"]
mocked_data = request.post_data.merge({ "my-string" => 'mocked-data'})
Expand Down Expand Up @@ -463,7 +463,7 @@ def example_6b70ea4cf0c7ae9c82cf0ed22ab0dbbb563e2d1419b35d04aa513cf91f0856f9(pag
end

# ElementHandle#eval_on_selector
def example_f6a83ec555fcf23877c11cf55f02a8c89a7fc11d3324859feda42e592e129f4f(page:)
def example_64bcac14fcbd1a2e6d6f32164d92124a90dddbfa9277f7503be7b0a401c9cf85(page:)
tweet_handle = page.query_selector(".tweet")
tweet_handle.eval_on_selector(".like", "node => node.innerText") # => "100"
tweet_handle.eval_on_selector(".retweets", "node => node.innerText") # => "10"
Expand Down Expand Up @@ -718,7 +718,7 @@ def example_2400f96eaaed3bc6ef6b0a16ba48e83d38a166c7d55a5dba0025472cffc6f2be(pag
end

# JSHandle#properties
def example_b5cbf187e1332705618516d4be127b8091a5d1acfa9a12d382086a2b0e738909(page:)
def example_49eec7966dd7a081de100e4563b110174e5e2dc4b89959cd14894097080346dc(page:)
page.goto('https://example.com/')
handle = page.evaluate_handle("({window, document})")
properties = handle.properties
Expand Down Expand Up @@ -921,7 +921,7 @@ def example_77567051f4c8531c719eb0b94e53a061ffe9a414e3bb131cbc956d1fdcf6eab3(pag
end

# Locator#filter
def example_516c962e3016789b2f0d21854daed72507a490b018b3f0213d4ae25f9ee03267(page:)
def example_981a978542d75734983c5b8d6fc19f2b2e94d93d3ecce2349a55fff99918b412(page:)
row_locator = page.locator("tr")
# ...
row_locator.
Expand Down Expand Up @@ -992,7 +992,7 @@ def example_d6cc7c4a653d7139137c582ad853bebd92e3b97893fb6d5f88919553404c57e4(pag
end

# Locator#or
def example_1828ac86226726cd674afe7d43e8d2bda4b1e9309c5ed1f2d57b4fd1c8024060(page:)
def example_180e47ad1dc80f352ad9ffc8519b25c65c17b7413febe4912e66acc198de69e7(page:)
new_email = page.get_by_role("button", name: "New")
dialog = page.get_by_text("Confirm security settings")
new_email.or(dialog).wait_for(state: 'visible')
Expand Down Expand Up @@ -1351,7 +1351,7 @@ def example_7fda2a761bdd66b942415ab444c6b4bb89dd87ec0f0a4a03e6775feb694f7913(pag
end

# Page#route
def example_ff4fba1273c7e65f4d68b4fcdd9dc4b792bba435005f0b9e7066ca18ded750b5(pgae:)
def example_a0ba081a92628cce9358e983826ad7143d6757dc2780f1b53f0d2e073000409e(pgae:)
def handle_route(route, request)
if request.post_data["my-string"]
mocked_data = request.post_data.merge({ "my-string" => 'mocked-data'})
Expand Down Expand Up @@ -1438,7 +1438,7 @@ def example_3eda55b8be7aa66b69117d8f1a98374e8938923ba516831ee46bc5e1994aff33(pag
def example_0c91be8bc12e1e564d14d37e5e0be8d4e56189ef1184ff34ccc0d92338ad598b(page:)
page.content = '<form action="https://example.com/resource"><input type="submit" value="trigger request" /></form>'
request = page.expect_request(/example.com\/resource/) do
page.get_by_text("trigger request").click()
page.get_by_text("trigger request").click
end
puts request.headers

Expand All @@ -1447,7 +1447,7 @@ def example_0c91be8bc12e1e564d14d37e5e0be8d4e56189ef1184ff34ccc0d92338ad598b(pag
# or with a predicate
page.content = '<form action="https://example.com/resource"><input type="submit" value="trigger request" /></form>'
request = page.expect_request(->(req) { req.url.start_with? 'https://example.com/resource' }) do
page.get_by_text("trigger request").click()
page.get_by_text("trigger request").click
end
puts request.headers
end
Expand All @@ -1456,7 +1456,7 @@ def example_0c91be8bc12e1e564d14d37e5e0be8d4e56189ef1184ff34ccc0d92338ad598b(pag
def example_bdc21f273866a6ed56d91f269e9665afe7f32d277a2c27f399c1af0bcb087b28(page:)
page.content = '<form action="https://example.com/resource"><input type="submit" value="trigger response" /></form>'
response = page.expect_response(/example.com\/resource/) do
page.get_by_text("trigger response").click()
page.get_by_text("trigger response").click
end
puts response.body
puts response.ok?
Expand All @@ -1466,7 +1466,7 @@ def example_bdc21f273866a6ed56d91f269e9665afe7f32d277a2c27f399c1af0bcb087b28(pag
# or with a predicate
page.content = '<form action="https://example.com/resource"><input type="submit" value="trigger response" /></form>'
response = page.expect_response(->(res) { res.url.start_with? 'https://example.com/resource' }) do
page.get_by_text("trigger response").click()
page.get_by_text("trigger response").click
end
puts response.body
puts response.ok?
Expand Down Expand Up @@ -1519,7 +1519,7 @@ def example_e2a297fe95fd0699b6a856c3be2f28106daa2615c0f4d6084f5012682a619d20(pag
end

# Route#continue
def example_39b99a97428d536c6d26b43e024ebbd90aa62cdd9f58cc70d67e23ca6b6b1799(page:)
def example_7e4301435099b6132736c17a7bc117a684c61411bdf344a1e10700f86bdd293d(page:)
def handle(route, request)
# override headers
headers = request.headers
Expand Down Expand Up @@ -1568,7 +1568,7 @@ def handle_post(route, request)
end

# Route#fallback
def example_1622b8b89837489dedec666cb29388780382f6e997246b261aed07fb60c70cd8(page:)
def example_20e6411032d6255108d5adc862d7a215cbca591255ca60fb3d91895c65229f0d(page:)
def handle(route, request)
# override headers
headers = request.headers
Expand Down Expand Up @@ -1627,7 +1627,7 @@ def example_a1cd3939b9af300fdf06f296bb66176d84c00edb31cae728310fa823f22691f8(pla
# Register the engine. Selectors will be prefixed with "tag=".
playwright.selectors.register("tag", script: tag_selector)
playwright.chromium.launch do |browser|
page = browser.new_page()
page = browser.new_page
page.content = '<div><button>Click me</button></div>'

# Use the selector prefixed with its name.
Expand Down
8 changes: 4 additions & 4 deletions documentation/docs/api/page.md
Original file line number Diff line number Diff line change
Expand Up @@ -1741,7 +1741,7 @@ Waits for the matching request and returns it. See [waiting for event](https://p
```ruby
page.content = '<form action="https://example.com/resource"><input type="submit" value="trigger request" /></form>'
request = page.expect_request(/example.com\/resource/) do
page.get_by_text("trigger request").click()
page.get_by_text("trigger request").click
end
puts request.headers

Expand All @@ -1750,7 +1750,7 @@ page.wait_for_load_state # wait for request finished.
# or with a predicate
page.content = '<form action="https://example.com/resource"><input type="submit" value="trigger request" /></form>'
request = page.expect_request(->(req) { req.url.start_with? 'https://example.com/resource' }) do
page.get_by_text("trigger request").click()
page.get_by_text("trigger request").click
end
puts request.headers
```
Expand Down Expand Up @@ -1780,7 +1780,7 @@ Returns the matched response. See [waiting for event](https://playwright.dev/pyt
```ruby
page.content = '<form action="https://example.com/resource"><input type="submit" value="trigger response" /></form>'
response = page.expect_response(/example.com\/resource/) do
page.get_by_text("trigger response").click()
page.get_by_text("trigger response").click
end
puts response.body
puts response.ok?
Expand All @@ -1790,7 +1790,7 @@ page.wait_for_load_state # wait for request finished.
# or with a predicate
page.content = '<form action="https://example.com/resource"><input type="submit" value="trigger response" /></form>'
response = page.expect_response(->(res) { res.url.start_with? 'https://example.com/resource' }) do
page.get_by_text("trigger response").click()
page.get_by_text("trigger response").click
end
puts response.body
puts response.ok?
Expand Down
2 changes: 1 addition & 1 deletion documentation/docs/api/selectors.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ JAVASCRIPT
# Register the engine. Selectors will be prefixed with "tag=".
playwright.selectors.register("tag", script: tag_selector)
playwright.chromium.launch do |browser|
page = browser.new_page()
page = browser.new_page
page.content = '<div><button>Click me</button></div>'

# Use the selector prefixed with its name.
Expand Down
4 changes: 4 additions & 0 deletions lib/playwright/javascript/value_parser.rb
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,10 @@ def parse
return URI(hash['u'])
end

if hash.key?('bi')
return hash['bi'].to_i
end

if hash.key?('r')
# @see https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/RegExp
# @see https://docs.ruby-lang.org/ja/latest/class/Regexp.html
Expand Down
6 changes: 5 additions & 1 deletion lib/playwright/javascript/value_serializer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,11 @@ def serialize
when true, false
{ b: value }
when Numeric
{ n: value }
if !value.is_a?(Integer) || (-9007199254740992..9007199254740991).include?(value)
{ n: value }
else
{ bi: value.to_s }
end
when String
{ s: value }
when Time
Expand Down
4 changes: 2 additions & 2 deletions lib/playwright/version.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# frozen_string_literal: true

module Playwright
VERSION = '1.35.0'
COMPATIBLE_PLAYWRIGHT_VERSION = '1.35.0'
VERSION = '1.36.0'
COMPATIBLE_PLAYWRIGHT_VERSION = '1.36.1'
end
8 changes: 4 additions & 4 deletions spec/integration/example_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@
HTML

example_2e5019929403491cde0c78bed1e0e18e0c86ab423d7ac8715876c4de4814f483(page: page)
example_388652162f4e169aab346af9ea657dd96de9217cd390a4cae2090af952b7aebe(page: page)
example_3d67a99411b5f924d573427b6f54aff63f7241f2b810959b79948bd3b522404a(page: page)
end
end

Expand Down Expand Up @@ -255,7 +255,7 @@
it 'should work with JSHandle#properties' do
with_page do |page|
with_network_retry do
example_b5cbf187e1332705618516d4be127b8091a5d1acfa9a12d382086a2b0e738909(page: page)
example_49eec7966dd7a081de100e4563b110174e5e2dc4b89959cd14894097080346dc(page: page)
end
end
end
Expand Down Expand Up @@ -431,7 +431,7 @@
end

with_page do |page|
example_39b99a97428d536c6d26b43e024ebbd90aa62cdd9f58cc70d67e23ca6b6b1799(page: page)
example_7e4301435099b6132736c17a7bc117a684c61411bdf344a1e10700f86bdd293d(page: page)
url = "#{server_cross_process_prefix}/empty2.html"
page.content = "<a href=\"#{url}\">link</a>"
response = page.expect_request(url) { page.click('a') }
Expand All @@ -451,7 +451,7 @@
end

with_page do |page|
example_1622b8b89837489dedec666cb29388780382f6e997246b261aed07fb60c70cd8(page: page)
example_20e6411032d6255108d5adc862d7a215cbca591255ca60fb3d91895c65229f0d(page: page)
url = "#{server_cross_process_prefix}/empty2.html"
page.content = "<a href=\"#{url}\">link</a>"
response = page.expect_request(url) { page.click('a') }
Expand Down
8 changes: 8 additions & 0 deletions spec/integration/page/evaluate_spec.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
require 'spec_helper'

RSpec.describe 'Page#evaluate' do
it 'should transfer bigint' do
with_page do |page|
expect(page.evaluate('() => 42n')).to eq(42)
expect(page.evaluate('(a) => a', arg: 9007199254740991)).to eq(9007199254740991)
expect(page.evaluate('(a) => a', arg: 9007199254740992)).to eq(9007199254740992)
end
end

it 'should return undefined for non-serializable objects' do
with_page do |page|
expect(page.evaluate('() => function() {}')).to be_nil
Expand Down
Loading