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 +4 -4
- data/lib/WebAccount/VERSION.rb +1 -1
- data/lib/WebAccount.rb +48 -11
- metadata +10 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 760ad4d11b1cfb40c9492b933d511fcd571ba2ad5a2875f6b23d14e1460e19c8
|
4
|
+
data.tar.gz: 208737ad6bd03b897ecb917fdcb96898558f4f048c5a5313485a9b9842d9b79b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8676a98a7ffe8504046408997d1f95cd6aaf908435c98ce245b03071a18af622bb15f4e359d71927af1b29ee91ae9efca65a4bf147d652eefdd71b69fcaeb7f4
|
7
|
+
data.tar.gz: f691c42b066940950c48d64ad2b75959d1bdaa033f52856f4b0eca8c43e63d34126ccc77d11223c8aa63373d8eb53c5bc48a91c5e3e8487e7bbd361a5930cf75
|
data/lib/WebAccount/VERSION.rb
CHANGED
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
|
-
|
17
|
-
|
18
|
-
|
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
|
-
@
|
24
|
-
@
|
25
|
-
@
|
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?(
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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.
|
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:
|
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
|
28
|
-
the URL of the login page, and a few page ids to a
|
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.
|
66
|
-
signing_key:
|
65
|
+
rubygems_version: 3.5.7
|
66
|
+
signing_key:
|
67
67
|
specification_version: 4
|
68
|
-
summary:
|
69
|
-
|
68
|
+
summary: An abstract super-class for navigating a web-based user account via Selenium
|
69
|
+
WebDriver.
|
70
70
|
test_files: []
|