Skip to content

Commit 953d221

Browse files
committed
fix examples
1 parent 1527862 commit 953d221

6 files changed

Lines changed: 38 additions & 7 deletions

File tree

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,6 @@ Brewfile.lock.json
1010
doc/
1111
sorbet/tapioca/*
1212
vendor/
13+
*.png
14+
package.json
15+
package-lock.json

Gemfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,6 @@ group :development, :docs do
3030
gem "webrick"
3131
gem "yard"
3232
end
33+
34+
gem "playwright-ruby-client", "~> 1.57", :group => :examples
35+
gem "watir", "~> 7.3", :group => :examples

Gemfile.lock

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,10 @@ GEM
7979
rb-inotify (~> 0.9, >= 0.9.10)
8080
logger (1.7.0)
8181
metrics (0.15.0)
82+
mime-types (3.7.0)
83+
logger
84+
mime-types-data (~> 3.2025, >= 3.2025.0507)
85+
mime-types-data (3.2026.0113)
8286
minitest (5.26.0)
8387
minitest-focus (1.4.0)
8488
minitest (>= 4, < 6)
@@ -94,6 +98,10 @@ GEM
9498
parser (3.3.10.0)
9599
ast (~> 2.4.1)
96100
racc
101+
playwright-ruby-client (1.57.1)
102+
base64
103+
concurrent-ruby (>= 1.1.6)
104+
mime-types (>= 3.0)
97105
prettier_print (1.2.1)
98106
prism (1.6.0)
99107
public_suffix (6.0.2)
@@ -126,7 +134,14 @@ GEM
126134
parser (>= 3.3.7.2)
127135
prism (~> 1.4)
128136
ruby-progressbar (1.13.0)
137+
rubyzip (3.2.2)
129138
securerandom (0.4.1)
139+
selenium-webdriver (4.40.0)
140+
base64 (~> 0.2)
141+
logger (~> 1.4)
142+
rexml (~> 3.2, >= 3.2.5)
143+
rubyzip (>= 1.2.2, < 4.0)
144+
websocket (~> 1.0)
130145
sorbet (0.6.12690)
131146
sorbet-static (= 0.6.12690)
132147
sorbet-runtime (0.6.12690)
@@ -183,11 +198,15 @@ GEM
183198
unicode-emoji (~> 4.1)
184199
unicode-emoji (4.1.0)
185200
uri (1.1.0)
201+
watir (7.3.0)
202+
regexp_parser (>= 1.2, < 3)
203+
selenium-webdriver (~> 4.2)
186204
webmock (3.26.1)
187205
addressable (>= 2.8.0)
188206
crack (>= 0.3.2)
189207
hashdiff (>= 0.4.0, < 2.0.0)
190208
webrick (1.9.1)
209+
websocket (1.2.11)
191210
yard (0.9.37)
192211
yard-sorbet (0.9.0)
193212
sorbet-runtime
@@ -210,6 +229,7 @@ DEPENDENCIES
210229
minitest-hooks
211230
minitest-proveit
212231
minitest-rg
232+
playwright-ruby-client (~> 1.57)
213233
rake
214234
rbs
215235
redcarpet
@@ -220,6 +240,7 @@ DEPENDENCIES
220240
syntax_tree
221241
syntax_tree-rbs!
222242
tapioca
243+
watir (~> 7.3)
223244
webmock
224245
webrick
225246
yard

examples/local_browser_example.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,12 @@
2222
begin
2323
start_response = client.sessions.start(
2424
model_name: "openai/gpt-5-nano",
25-
browser: {type: :local}
25+
browser: {
26+
type: :local,
27+
launch_options: {
28+
headless: false
29+
}
30+
}
2631
)
2732
session_id = start_response.data.session_id
2833
puts("Session started: #{session_id}")

examples/remote_playwright_example.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,11 @@ def normalize_url(url)
4444
end
4545

4646
def resolve_page_target_id(cdp_session, page_url)
47-
info = cdp_session.send("Target.getTargetInfo")
47+
info = cdp_session.send_message("Target.getTargetInfo")
4848
target_id = info.dig("targetInfo", "targetId")
4949
return target_id unless target_id.to_s.empty?
5050

51-
targets = cdp_session.send("Target.getTargets")
51+
targets = cdp_session.send_message("Target.getTargets")
5252
entries = targets["targetInfos"] || []
5353
normalized = normalize_url(page_url)
5454

@@ -93,7 +93,8 @@ def resolve_page_target_id(cdp_session, page_url)
9393
begin
9494
context = browser.contexts.first || browser.new_context
9595
page = context.pages.first || context.new_page
96-
page.goto("https://example.com", wait_until: "domcontentloaded")
96+
page.goto("https://example.com")
97+
page.wait_for_load_state(state: "domcontentloaded")
9798

9899
cdp_session = context.new_cdp_session(page)
99100
page_target_id = resolve_page_target_id(cdp_session, page.url)

lib/stagehand/local.rb

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -187,9 +187,7 @@ def download_with_redirects(url, dest_path, limit:)
187187

188188
download_with_redirects(URI(location), dest_path, limit: limit - 1)
189189
when Net::HTTPSuccess
190-
File.open(dest_path, "wb") do |file|
191-
response.read_body { |chunk| file.write(chunk) }
192-
end
190+
File.binwrite(dest_path, response.body)
193191
nil
194192
else
195193
raise "Failed to download binary: #{response.code} #{response.message}"

0 commit comments

Comments
 (0)