Class: Selenium::WebDriver::TargetLocator

Inherits:
Object
  • Object
show all
Defined in:
lib/selenium/webdriver/common/target_locator.rb

Instance Method Summary collapse

Constructor Details

#initialize(bridge) ⇒ TargetLocator

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of TargetLocator.



27
28
29
# File 'lib/selenium/webdriver/common/target_locator.rb', line 27

def initialize(bridge)
  @bridge = bridge
end

Instance Method Details

#active_elementWebDriver::Element

get the active element



90
91
92
# File 'lib/selenium/webdriver/common/target_locator.rb', line 90

def active_element
  @bridge.switch_to_active_element
end

#alertObject

switches to the currently active modal dialog for this particular driver instance



106
107
108
# File 'lib/selenium/webdriver/common/target_locator.rb', line 106

def alert
  Alert.new(@bridge)
end

#default_contentObject

selects either the first frame on the page, or the main document when a page contains iframes.



98
99
100
# File 'lib/selenium/webdriver/common/target_locator.rb', line 98

def default_content
  @bridge.switch_to_default_content
end

#frame(id) ⇒ Object

switch to the frame with the given id



35
36
37
# File 'lib/selenium/webdriver/common/target_locator.rb', line 35

def frame(id)
  @bridge.switch_to_frame id
end

#parent_frameObject

switch to the parent frame



43
44
45
# File 'lib/selenium/webdriver/common/target_locator.rb', line 43

def parent_frame
  @bridge.switch_to_parent_frame
end

#window(id) ⇒ Object

switch to the given window handle

If given a block, this method will switch back to the original window after block execution.



57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/selenium/webdriver/common/target_locator.rb', line 57

def window(id)
  if block_given?
    original = begin
      @bridge.window_handle
    rescue Error::NoSuchWindowError
      nil
    end

    unless @bridge.window_handles.include? id
      raise Error::NoSuchWindowError, "The specified identifier '#{id}' is not found in the window handle list"
    end

    @bridge.switch_to_window id

    begin
      returned = yield
    ensure
      current_handles = @bridge.window_handles
      original = current_handles.first unless current_handles.include? original
      @bridge.switch_to_window original
      returned
    end
  else
    @bridge.switch_to_window id
  end
end