webaccount 0.2.5 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f2ca939518ce138699dd157ad553ac523dfd860e6fa2677fa752e3efbdc5d0a1
4
- data.tar.gz: 84018b777815434298373801a532f3c88d2e970ed4da0b762de13874e6fccda7
3
+ metadata.gz: 760ad4d11b1cfb40c9492b933d511fcd571ba2ad5a2875f6b23d14e1460e19c8
4
+ data.tar.gz: 208737ad6bd03b897ecb917fdcb96898558f4f048c5a5313485a9b9842d9b79b
5
5
  SHA512:
6
- metadata.gz: e0891afe41232589ba9d5bcadc419ae69b998ffc4f2c5d852c94884d7e02ee2757fd8253f51dddda253d98173f77964eacf865d2c57a8dee8cbbc59df1df8e35
7
- data.tar.gz: a6578bc7d5ea85cd75415e41da0bb09c28e2fe40ea30bb34a1c94d5bf63d5bbee5e656a78514b862a87ef4bc8d1c8195ecd39294e3aba5abe138a0b5af3901c1
6
+ metadata.gz: 8676a98a7ffe8504046408997d1f95cd6aaf908435c98ce245b03071a18af622bb15f4e359d71927af1b29ee91ae9efca65a4bf147d652eefdd71b69fcaeb7f4
7
+ data.tar.gz: f691c42b066940950c48d64ad2b75959d1bdaa033f52856f4b0eca8c43e63d34126ccc77d11223c8aa63373d8eb53c5bc48a91c5e3e8487e7bbd361a5930cf75
@@ -1,5 +1,5 @@
1
1
  class WebAccount
2
2
 
3
- VERSION = '0.2.5'
3
+ VERSION = '0.3.1'
4
4
 
5
5
  end
data/lib/WebAccount.rb CHANGED
@@ -13,16 +13,16 @@ class WebAccount
13
13
  def initialize(
14
14
  username: nil, password: nil,
15
15
  login_page_url: nil,
16
- login_page_username_field_id: nil, login_page_password_field_id: nil,
17
- login_page_submit_button_id: nil,
18
- logout_button_id: nil,
16
+ login_page_username_field_selector: nil, login_page_password_field_selector: nil,
17
+ login_page_submit_button_selector: nil,
18
+ logout_button_selector: nil,
19
19
  logged_out_xpath: nil
20
20
  )
21
21
  @username, @password = username, password
22
22
  @login_page_url = login_page_url
23
- @login_page_username_field_id, @login_page_password_field_id = login_page_username_field_id, login_page_password_field_id
24
- @login_page_submit_button_id = login_page_submit_button_id
25
- @logout_button_id = logout_button_id
23
+ @login_page_username_field_selector, @login_page_password_field_selector = login_page_username_field_selector, login_page_password_field_selector
24
+ @login_page_submit_button_selector = login_page_submit_button_selector
25
+ @logout_button_selector = logout_button_selector
26
26
  @logged_out_xpath = logged_out_xpath
27
27
  end
28
28
 
@@ -38,13 +38,13 @@ class WebAccount
38
38
  login_page_submit_button.click
39
39
  end
40
40
  @logged_in = driver_wait.until do
41
- driver.element_present?(:id, @logout_button_id)
41
+ driver.element_present?(@logout_button_selector.keys.first, @logout_button_selector.values.first)
42
42
  end
43
43
  end
44
44
  alias_method :logon, :login
45
45
 
46
46
  def logout
47
- driver.find_element(:id, @logout_button_id).click
47
+ logout_button.click
48
48
  if logged_out?
49
49
  @logged_in = false
50
50
  end
@@ -98,8 +98,16 @@ class WebAccount
98
98
  username_field.send_keys(username)
99
99
  end
100
100
 
101
+ def default_username_field
102
+ {name: "username"}
103
+ end
104
+
101
105
  def username_field
102
- driver.find_element(:id, @login_page_username_field_id)
106
+ if @login_page_username_field_selector
107
+ driver.find_element(@login_page_username_field_selector.keys.first, @login_page_username_field_selector.values.first)
108
+ else
109
+ driver.find_element(default_username_field.keys.first, default_username_field.values.first)
110
+ end
103
111
  end
104
112
 
105
113
  def enter_password(password = nil)
@@ -107,12 +115,41 @@ class WebAccount
107
115
  password_field.send_keys(password)
108
116
  end
109
117
 
118
+ def default_password_field
119
+ {name: "password"}
120
+ end
121
+
110
122
  def password_field
111
- driver.find_element(:id, @login_page_password_field_id)
123
+ if @login_page_password_field_selector
124
+ driver.find_element(@login_page_password_field_selector.keys.first, @login_page_password_field_selector.values.first)
125
+ else
126
+ driver.find_element(default_password_field.keys.first, default_password_field.values.first)
127
+ end
128
+ end
129
+
130
+ def default_login_page_submit_button_selector
131
+ {xpath: '//input[@type="submit" and @value="Login"]'}
112
132
  end
113
133
 
114
134
  def login_page_submit_button
115
- driver.find_element(:id, @login_page_submit_button_id)
135
+ if @login_page_submit_button_selector
136
+ driver.find_element(@login_page_submit_button_selector.keys.first, @login_page_submit_button_selector.values.first)
137
+ else
138
+ driver.find_element(default_login_page_submit_button_selector.keys.first, default_login_page_submit_button_selector.values.first)
139
+ end
116
140
  end
117
141
 
142
+ # logging out
143
+
144
+ def default_logout_button_selector
145
+ {xpath: '//input[@type="submit" and @value="Logout"]'}
146
+ end
147
+
148
+ def logout_button
149
+ if @logout_page_submit_button_selector
150
+ driver.find_element(@logout_button_selector.keys.first, @logout_button_selector.values.first)
151
+ else
152
+ driver.find_element(default_logout_button_selector.keys.first, default_logout_button_selector.values.first)
153
+ end
154
+ end
118
155
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webaccount
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - thoran
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-19 00:00:00.000000000 Z
11
+ date: 2024-04-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: selenium-webdriver
@@ -24,8 +24,8 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
- description: Easily log into web accounts but just supplying a username and password,
28
- the URL of the login page, and a few page ids to a subclass of WebAccount.
27
+ description: Easily log into web accounts by supplying just a username and password,
28
+ the URL of the login page, and a few page ids to a sub-class of WebAccount.
29
29
  email: code@thoran.com
30
30
  executables: []
31
31
  extensions: []
@@ -47,7 +47,7 @@ homepage: http://github.com/thoran/WebAccount
47
47
  licenses:
48
48
  - Ruby
49
49
  metadata: {}
50
- post_install_message:
50
+ post_install_message:
51
51
  rdoc_options: []
52
52
  require_paths:
53
53
  - lib
@@ -62,9 +62,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
62
62
  - !ruby/object:Gem::Version
63
63
  version: '0'
64
64
  requirements: []
65
- rubygems_version: 3.1.2
66
- signing_key:
65
+ rubygems_version: 3.5.7
66
+ signing_key:
67
67
  specification_version: 4
68
- summary: "# Description: An abstract superclass for navigating a web-based user account
69
- via Selenium WebDriver."
68
+ summary: An abstract super-class for navigating a web-based user account via Selenium
69
+ WebDriver.
70
70
  test_files: []