webaccount 0.2.5 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|