Method: Selenium::WebDriver::WheelActions#scroll_from

Defined in:
lib/selenium/webdriver/common/interactions/wheel_actions.rb

#scroll_from(scroll_origin, delta_x, delta_y, device: nil) ⇒ Selenium::WebDriver::WheelActions

Scrolls by provided amount based on a provided origin.

The scroll origin is either the center of an element or the upper left of the viewport plus any offsets. If the origin is an element, and the element is not in the viewport, the bottom of the element will first

be scrolled to the bottom of the viewport.

Examples:

Scroll from element by a specified amount

el = driver.find_element(id: "some_id")
origin = WheelActions::ScrollOrigin.element(el)
driver.action.scroll_from(origin, 0, 200).perform

Scroll from element by a specified amount with an offset

el = driver.find_element(id: "some_id")
origin = WheelActions::ScrollOrigin.element(el, 10, 10)
driver.action.scroll_from(origin, 100, 200).perform

Scroll viewport by a specified amount with an offset

origin = WheelActions::ScrollOrigin.viewport(10, 10)
driver.action.scroll_from(origin, 0, 200).perform

Parameters:

  • scroll_origin (ScrollOrigin)

    Where scroll originates (viewport or element center) plus provided offsets.

  • delta_x (Integer)

    Distance along X axis to scroll using the wheel. A negative value scrolls left.

  • delta_y (Integer)

    Distance along Y axis to scroll using the wheel. A negative value scrolls up.

Returns:

Raises:



88
89
90
91
92
93
94
95
96
97
# File 'lib/selenium/webdriver/common/interactions/wheel_actions.rb', line 88

def scroll_from(scroll_origin, delta_x, delta_y, device: nil)
  raise TypeError, "#{scroll_origin.inspect} isn't a valid ScrollOrigin" unless scroll_origin.is_a?(ScrollOrigin)

  scroll(x: scroll_origin.x_offset,
         y: scroll_origin.y_offset,
         delta_x: delta_x,
         delta_y: delta_y,
         origin: scroll_origin.origin,
         device: device)
end