Class: Selenium::WebDriver::TargetLocator

Inherits:
Object
  • Object
show all
Defined in:
build/rb/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



25
26
27
# File 'build/rb/lib/selenium/webdriver/common/target_locator.rb', line 25

def initialize(bridge)
  @bridge = bridge
end

Instance Method Details

#active_elementWebDriver::Element

get the active element

Returns:



88
89
90
# File 'build/rb/lib/selenium/webdriver/common/target_locator.rb', line 88

def active_element
  @bridge.switch_to_active_element
end

#alertObject

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



104
105
106
# File 'build/rb/lib/selenium/webdriver/common/target_locator.rb', line 104

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.



96
97
98
# File 'build/rb/lib/selenium/webdriver/common/target_locator.rb', line 96

def default_content
  @bridge.switch_to_default_content
end

#frame(id) ⇒ Object

switch to the frame with the given id



33
34
35
# File 'build/rb/lib/selenium/webdriver/common/target_locator.rb', line 33

def frame(id)
  @bridge.switch_to_frame id
end

#parent_frameObject

switch to the parent frame



41
42
43
# File 'build/rb/lib/selenium/webdriver/common/target_locator.rb', line 41

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.

Parameters:

  • id

    A window handle, obtained through Driver#window_handles



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

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