class UiInteractors::Interactors::BaseInteractor
Public Class Methods
new(driver, name=nil, xpath_root='//*')
click to toggle source
# File lib/ui_interactors/interactors/base_interactor.rb, line 5 def initialize(driver, name=nil, xpath_root='//*') @driver = driver @name = name @xpath_root = xpath_root end
Public Instance Methods
is_not_visible!()
click to toggle source
# File lib/ui_interactors/interactors/base_interactor.rb, line 17 def is_not_visible! wait.until do elements = @driver.find_elements(xpath: current_xpath) elements.count == 0 || elements.map(&:displayed?).none? end rescue raise("xpath is visible: #{current_xpath}") end
is_visible!()
click to toggle source
# File lib/ui_interactors/interactors/base_interactor.rb, line 11 def is_visible! wait.until { @driver.find_element(xpath: current_xpath).displayed? } rescue raise("xpath is not visible: #{current_xpath}") end
Private Instance Methods
current_xpath()
click to toggle source
# File lib/ui_interactors/interactors/base_interactor.rb, line 28 def current_xpath raise('Subclass must override method') end
find_element()
click to toggle source
# File lib/ui_interactors/interactors/base_interactor.rb, line 40 def find_element is_visible! wait.until { @driver.find_element(xpath: current_xpath) } end
wait()
click to toggle source
# File lib/ui_interactors/interactors/base_interactor.rb, line 32 def wait ignored_errors = [ Selenium::WebDriver::Error::NoSuchElementError, Selenium::WebDriver::Error::StaleElementReferenceError ] Selenium::WebDriver::Wait.new(timeout: 5, interval: 0.2, ignore: ignored_errors) end