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
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
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
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