class WebAccount

Constants

VERSION

Attributes

password[RW]
user_agent_alias[W]
username[RW]

Public Class Methods

new( username: nil, password: nil, login_page_url: nil, login_page_username_field_id: nil, login_page_password_field_id: nil, login_page_submit_button_id: nil, logout_button_id: nil, logged_out_xpath: nil ) click to toggle source
# File lib/WebAccount.rb, line 13
def initialize(
  username: nil, password: nil,
  login_page_url: nil,
  login_page_username_field_id: nil, login_page_password_field_id: nil,
  login_page_submit_button_id: nil,
  logout_button_id: nil,
  logged_out_xpath: nil
)
  @username, @password = username, password
  @login_page_url = login_page_url
  @login_page_username_field_id, @login_page_password_field_id = login_page_username_field_id, login_page_password_field_id
  @login_page_submit_button_id = login_page_submit_button_id
  @logout_button_id = logout_button_id
  @logged_out_xpath = logged_out_xpath
end

Public Instance Methods

logged_in?() click to toggle source

predicate methods

# File lib/WebAccount.rb, line 61
def logged_in?
  @logged_in
end
logged_out?() click to toggle source
# File lib/WebAccount.rb, line 65
def logged_out?
  driver_wait.until do
    driver.element_present?(:xpath, @logged_out_xpath)
  end
end
login(username: nil, password: nil) click to toggle source
# File lib/WebAccount.rb, line 29
def login(username: nil, password: nil)
  @logged_in = false
  username ||= self.username
  password ||= self.password
  attempts = 0
  driver.attempt do
    get_login_page
    enter_username(username)
    enter_password(password)
    login_page_submit_button.click
  end
  @logged_in = driver_wait.until do
    driver.element_present?(:id, @logout_button_id)
  end
end
Also aliased as: logon
logoff()
Alias for: logout
logon(username: nil, password: nil)
Alias for: login
logout() click to toggle source
# File lib/WebAccount.rb, line 46
def logout
  driver.find_element(:id, @logout_button_id).click
  if logged_out?
    @logged_in = false
  end
end
Also aliased as: logoff
shutdown() click to toggle source
# File lib/WebAccount.rb, line 54
def shutdown
  logout if logged_in?
  driver.quit
end

Private Instance Methods

driver() click to toggle source
# File lib/WebAccount.rb, line 77
def driver
  @driver ||= (
    driver = Selenium::WebDriver.setup(user_agent_alias)
    driver.manage.timeouts.implicit_wait = 5
    driver
  )
end
driver_wait() click to toggle source
# File lib/WebAccount.rb, line 85
def driver_wait
  @driver_wait ||= Selenium::WebDriver::Wait.new(timeout: 180)
end
enter_password(password = nil) click to toggle source
# File lib/WebAccount.rb, line 105
def enter_password(password = nil)
  password ||= self.password
  password_field.send_keys(password)
end
enter_username(username = nil) click to toggle source
# File lib/WebAccount.rb, line 96
def enter_username(username = nil)
  username ||= self.username
  username_field.send_keys(username)
end
get_login_page()
Alias for: login_page
login_page() click to toggle source

logging in

# File lib/WebAccount.rb, line 91
def login_page
  driver.get(@login_page_url)
end
Also aliased as: get_login_page
login_page_submit_button() click to toggle source
# File lib/WebAccount.rb, line 114
def login_page_submit_button
  driver.find_element(:id, @login_page_submit_button_id)
end
password_field() click to toggle source
# File lib/WebAccount.rb, line 110
def password_field
  driver.find_element(:id, @login_page_password_field_id)
end
user_agent_alias() click to toggle source
# File lib/WebAccount.rb, line 73
def user_agent_alias
  @user_agent_alias ||= @user_agent_alias || :chrome
end
username_field() click to toggle source
# File lib/WebAccount.rb, line 101
def username_field
  driver.find_element(:id, @login_page_username_field_id)
end