Skip to content

Commit b0d3682

Browse files
authored
Merge pull request #104 from machinio/frames
Conform ferrum frames
2 parents ffee82e + 8e47329 commit b0d3682

File tree

2 files changed

+24
-3
lines changed

2 files changed

+24
-3
lines changed

lib/capybara/cuprite/driver.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ def current_url
5050
end
5151

5252
def frame_url
53-
browser.frame_url
53+
evaluate_script("window.location.href")
5454
end
5555

5656
def html
@@ -71,7 +71,7 @@ def title
7171
end
7272

7373
def frame_title
74-
browser.frame_title
74+
evaluate_script("document.title")
7575
end
7676

7777
def find_xpath(selector)

lib/capybara/cuprite/page.rb

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,22 @@
11
# frozen_string_literal: true
22

3+
require "forwardable"
4+
35
module Capybara::Cuprite
46
module Page
57
MODAL_WAIT = ENV.fetch("CUPRITE_MODAL_WAIT", 0.05).to_f
68

9+
extend Forwardable
10+
delegate %i[at_css at_xpath css xpath
11+
current_url current_title body
12+
execution_id evaluate evaluate_on evaluate_async execute] => :active_frame
13+
14+
715
def initialize(*args)
8-
super
16+
@frame_stack = []
917
@accept_modal = []
1018
@modal_messages = []
19+
super
1120
end
1221

1322
def set(node, value)
@@ -104,6 +113,10 @@ def switch_to_frame(handle)
104113
end
105114
end
106115

116+
def title
117+
active_frame.current_title
118+
end
119+
107120
private
108121

109122
def prepare_page
@@ -162,5 +175,13 @@ def find_position(node, *args)
162175
raise
163176
end
164177
end
178+
179+
def active_frame
180+
if @frame_stack.empty?
181+
main_frame
182+
else
183+
@frames[@frame_stack.last]
184+
end
185+
end
165186
end
166187
end

0 commit comments

Comments
 (0)