Skip to content

Commit

Permalink
Merge pull request #259 from YusukeIwaki/driver/1.36.1
Browse files Browse the repository at this point in the history
Update Playwright driver to 1.36.1
  • Loading branch information
YusukeIwaki authored Jul 27, 2023
2 parents 7c4651e + b5968c6 commit 1e9e2df
Show file tree
Hide file tree
Showing 10 changed files with 309 additions and 252 deletions.
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

1 comment on commit 1e9e2df

@vercel
Copy link

@vercel vercel bot commented on 1e9e2df Jul 27, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.