webaccount 0.2.5 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f2ca939518ce138699dd157ad553ac523dfd860e6fa2677fa752e3efbdc5d0a1
4
- data.tar.gz: 84018b777815434298373801a532f3c88d2e970ed4da0b762de13874e6fccda7
3
+ metadata.gz: 5f2306cf382f2ebbba8b93e9746e12c92d298ead4ba4f154fc71c223d844e2e0
4
+ data.tar.gz: c1b04987b7f1812c549fd8f0203457e515aab18e716f2885c29494c07688baf8
5
5
  SHA512:
6
- metadata.gz: e0891afe41232589ba9d5bcadc419ae69b998ffc4f2c5d852c94884d7e02ee2757fd8253f51dddda253d98173f77964eacf865d2c57a8dee8cbbc59df1df8e35
7
- data.tar.gz: a6578bc7d5ea85cd75415e41da0bb09c28e2fe40ea30bb34a1c94d5bf63d5bbee5e656a78514b862a87ef4bc8d1c8195ecd39294e3aba5abe138a0b5af3901c1
6
+ metadata.gz: 2f488ddda68db8c4807e5ad7ada9c8f85f48219a97e24be6f1ea6d1033395993a9bf6a74de615b539bdab6c749e7a11c3c4a1d04256dd94cfba743a2aadb0f8d
7
+ data.tar.gz: 86b9e301db625c6e236da7290d916a1fa629d3cdabf74cc4cb8f61f0b25d837a8b6bd5e5cec6b357b5f3baea0ff6d4d71739ddc7ac463089ee1a4a06df5e73bc
@@ -1,5 +1,5 @@
1
1
  class WebAccount
2
2
 
3
- VERSION = '0.2.5'
3
+ VERSION = '0.3.0'
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.0
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.6
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: []