girbot 0.1.2 → 0.1.3
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/README.md +3 -0
- data/girbot.gemspec +3 -3
- data/lib/girbot/step_foundation.rb +4 -0
- data/lib/girbot/version.rb +1 -1
- data/lib/girbot/watir_shortcuts.rb +26 -2
- metadata +6 -7
- data/examples/plata_electrica.rb +0 -46
- data/examples/plata_eon.rb +0 -46
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 548b6f82b9fe496d2ba7e4b7f68952b94a38f2c1
|
4
|
+
data.tar.gz: 8d56726e5e3ab874ae66e9c63cc6dbfa491bdf87
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fefc60f555993813fb382f4f025c834b67fb340231084184d5fa018c05a7acc64b8049c9de09a29c9c8f04da292ce8d0d91a7b826f4e1ebe9f61cca763c162c8
|
7
|
+
data.tar.gz: 640c64659120ded4b75c91d775933337a5b3bc644765ad89a59b5b48e77debea0bb453a55b98d175aab5c469ff0291d88fff68f6090cc934c2e16a9fd9a17a13
|
data/README.md
CHANGED
data/girbot.gemspec
CHANGED
@@ -9,9 +9,9 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = ["Cristian Mircea Messel"]
|
10
10
|
spec.email = ["mess110@gmail.com"]
|
11
11
|
|
12
|
-
spec.summary = %q{
|
13
|
-
spec.description = %q{
|
14
|
-
spec.homepage = "
|
12
|
+
spec.summary = %q{> bleep-blop wreak havoc bleep mischief - Girbot}
|
13
|
+
spec.description = %q{Girbot wants to help you automate boring tasks. You define steps which can be run in different browsers.}
|
14
|
+
spec.homepage = "https://github.com/mess110/girbot"
|
15
15
|
spec.license = "MIT"
|
16
16
|
|
17
17
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
@@ -8,6 +8,7 @@ module Girbot
|
|
8
8
|
|
9
9
|
def take_whole_action options, openBrowser, closeBrowser
|
10
10
|
@browser_holder.init if openBrowser
|
11
|
+
maximize if options[:maximize]
|
11
12
|
validate_browser_presence
|
12
13
|
action(options)
|
13
14
|
close if closeBrowser
|
@@ -50,6 +51,7 @@ module Girbot
|
|
50
51
|
raise 'invalid options[:details][:auth]' unless options[:details][:auth].is_a?(Hash)
|
51
52
|
raise 'invalid options[:details][:auth][:user]' unless options[:details][:auth][:user].is_a?(String)
|
52
53
|
raise 'invalid options[:details][:auth][:pass]' unless options[:details][:auth][:pass].is_a?(String)
|
54
|
+
options[:details][:auth]
|
53
55
|
end
|
54
56
|
|
55
57
|
def validate_card(options)
|
@@ -65,6 +67,7 @@ module Girbot
|
|
65
67
|
# * expYear is a year
|
66
68
|
# * expMonth is a month
|
67
69
|
# * ccv is only digits
|
70
|
+
options[:details][:card]
|
68
71
|
end
|
69
72
|
|
70
73
|
def self.read path
|
@@ -76,6 +79,7 @@ module Girbot
|
|
76
79
|
options[:headless] = true if options[:headless].nil?
|
77
80
|
options[:openBrowser] = true if options[:openBrowser].nil?
|
78
81
|
options[:closeBrowser] = true if options[:closeBrowser].nil?
|
82
|
+
options[:maximize] = false if options[:maximize].nil?
|
79
83
|
|
80
84
|
step = self.new(options[:browser])
|
81
85
|
if options[:headless]
|
data/lib/girbot/version.rb
CHANGED
@@ -4,6 +4,14 @@ module Girbot
|
|
4
4
|
@browser_holder.browser
|
5
5
|
end
|
6
6
|
|
7
|
+
def maximize
|
8
|
+
browser.driver.manage.window.maximize
|
9
|
+
rescue Selenium::WebDriver::Error::UnknownError => e
|
10
|
+
puts 'Could not maximize. Moving on.'
|
11
|
+
puts e
|
12
|
+
puts e.backtrace
|
13
|
+
end
|
14
|
+
|
7
15
|
def goto url
|
8
16
|
browser.goto url
|
9
17
|
end
|
@@ -12,8 +20,15 @@ module Girbot
|
|
12
20
|
browser.text_field(query).set text
|
13
21
|
end
|
14
22
|
|
15
|
-
def
|
16
|
-
browser.
|
23
|
+
def append_to_textfield text, query
|
24
|
+
input = browser.text_field(query)
|
25
|
+
text.chars.each do |c|
|
26
|
+
input.append(c)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def exec_js js
|
31
|
+
browser.execute_script(js)
|
17
32
|
end
|
18
33
|
|
19
34
|
def select_value(value, query)
|
@@ -29,6 +44,15 @@ module Girbot
|
|
29
44
|
browser.send(type, query).click
|
30
45
|
end
|
31
46
|
|
47
|
+
# Examples:
|
48
|
+
#
|
49
|
+
# fire_event(:checkbox, id: 'my-id')
|
50
|
+
# fire_event(:checkbox, class: 'my-class', :click)
|
51
|
+
#
|
52
|
+
def fire_event(type, query, event = :click)
|
53
|
+
browser.send(type, query).fire_event event
|
54
|
+
end
|
55
|
+
|
32
56
|
def close
|
33
57
|
browser.close
|
34
58
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: girbot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cristian Mircea Messel
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-06-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -136,7 +136,8 @@ dependencies:
|
|
136
136
|
- - '='
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: 2.3.1
|
139
|
-
description:
|
139
|
+
description: Girbot wants to help you automate boring tasks. You define steps which
|
140
|
+
can be run in different browsers.
|
140
141
|
email:
|
141
142
|
- mess110@gmail.com
|
142
143
|
executables: []
|
@@ -159,8 +160,6 @@ files:
|
|
159
160
|
- examples/cookie_clicker.rb
|
160
161
|
- examples/details.json.example
|
161
162
|
- examples/emag_search.rb
|
162
|
-
- examples/plata_electrica.rb
|
163
|
-
- examples/plata_eon.rb
|
164
163
|
- examples/test_run.rb
|
165
164
|
- girbot.gemspec
|
166
165
|
- lib/girbot.rb
|
@@ -173,7 +172,7 @@ files:
|
|
173
172
|
- lib/girbot/watir_shortcuts.rb
|
174
173
|
- pass.txt
|
175
174
|
- users.txt
|
176
|
-
homepage:
|
175
|
+
homepage: https://github.com/mess110/girbot
|
177
176
|
licenses:
|
178
177
|
- MIT
|
179
178
|
metadata: {}
|
@@ -196,5 +195,5 @@ rubyforge_project:
|
|
196
195
|
rubygems_version: 2.6.14
|
197
196
|
signing_key:
|
198
197
|
specification_version: 4
|
199
|
-
summary:
|
198
|
+
summary: "> bleep-blop wreak havoc bleep mischief - Girbot"
|
200
199
|
test_files: []
|
data/examples/plata_electrica.rb
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
require "bundler/setup"
|
2
|
-
require "girbot"
|
3
|
-
|
4
|
-
class PlataElectrica < Girbot::Step
|
5
|
-
def action options = {}
|
6
|
-
validate_auth(options)
|
7
|
-
validate_card(options)
|
8
|
-
|
9
|
-
goto 'https://myelectrica.ro/index.php?pagina=login'
|
10
|
-
text_in_textfield(options[:details][:auth][:user], id: 'myelectrica_utilizator')
|
11
|
-
text_in_textfield(options[:details][:auth][:pass], id: 'myelectrica_pass')
|
12
|
-
sleep 1
|
13
|
-
click(:button, id: 'myelectrica_login_btn')
|
14
|
-
|
15
|
-
goto 'https://myelectrica.ro/index.php?pagina=plateste-online'
|
16
|
-
sleep 1
|
17
|
-
fire id: 'myelectrica_checkall'
|
18
|
-
click(:button, type: 'submit')
|
19
|
-
sleep 1
|
20
|
-
click(:button, id: 'requestMobilPay')
|
21
|
-
|
22
|
-
text_in_textfield(options[:details][:card][:number], id: 'paymentCardNumber')
|
23
|
-
text_in_textfield(options[:details][:card][:name], id: 'paymentCardName')
|
24
|
-
browser.execute_script("document.getElementById('paymentExpMonth').style.opacity='1';")
|
25
|
-
select_value(options[:details][:card][:expMonth], id: 'paymentExpMonth')
|
26
|
-
browser.execute_script("document.getElementById('paymentExpYear').style.opacity='1';")
|
27
|
-
select_value(options[:details][:card][:expYear], id: 'paymentExpYear')
|
28
|
-
text_in_textfield(options[:details][:card][:ccv], id: 'paymentCVV2Number')
|
29
|
-
|
30
|
-
click(:button, type: 'submit')
|
31
|
-
|
32
|
-
loop do
|
33
|
-
sleep 1
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
PlataElectrica.run(
|
39
|
-
headless: false,
|
40
|
-
closeBrowser: false,
|
41
|
-
browser: Girbot::BrowserHolder.new(:chrome, nil),
|
42
|
-
details: {
|
43
|
-
auth: Girbot::Step.read('./examples/details.json')[:auth][0],
|
44
|
-
card: Girbot::Step.read('./examples/details.json')[:cards][0]
|
45
|
-
}
|
46
|
-
)
|
data/examples/plata_eon.rb
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
require "bundler/setup"
|
2
|
-
require "girbot"
|
3
|
-
|
4
|
-
class PlataEon < Girbot::Step
|
5
|
-
def action options = {}
|
6
|
-
validate_auth(options)
|
7
|
-
validate_card(options)
|
8
|
-
|
9
|
-
goto 'https://myline-eon.ro/login'
|
10
|
-
text_in_textfield(options[:details][:auth][:user], id: 'username')
|
11
|
-
text_in_textfield(options[:details][:auth][:pass], id: 'password')
|
12
|
-
sleep 1
|
13
|
-
click(:button, type: 'submit')
|
14
|
-
|
15
|
-
# goto 'https://myelectrica.ro/index.php?pagina=plateste-online'
|
16
|
-
# sleep 1
|
17
|
-
# fire id: 'myelectrica_checkall'
|
18
|
-
# click(:button, type: 'submit')
|
19
|
-
# sleep 1
|
20
|
-
# click(:button, id: 'requestMobilPay')
|
21
|
-
|
22
|
-
# text_in_textfield(options[:details][:card][:number], id: 'paymentCardNumber')
|
23
|
-
# text_in_textfield(options[:details][:card][:name], id: 'paymentCardName')
|
24
|
-
# browser.execute_script("document.getElementById('paymentExpMonth').style.opacity='1';")
|
25
|
-
# select_value(options[:details][:card][:expMonth], id: 'paymentExpMonth')
|
26
|
-
# browser.execute_script("document.getElementById('paymentExpYear').style.opacity='1';")
|
27
|
-
# select_value(options[:details][:card][:expYear], id: 'paymentExpYear')
|
28
|
-
# text_in_textfield(options[:details][:card][:ccv], id: 'paymentCVV2Number')
|
29
|
-
|
30
|
-
# click(:button, type: 'submit')
|
31
|
-
|
32
|
-
loop do
|
33
|
-
sleep 1
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
PlataEon.run(
|
39
|
-
headless: false,
|
40
|
-
closeBrowser: false,
|
41
|
-
browser: Girbot::BrowserHolder.new(:chrome, nil),
|
42
|
-
details: {
|
43
|
-
auth: Girbot::Step.read('./examples/details.json')[:auth][0],
|
44
|
-
card: Girbot::Step.read('./examples/details.json')[:cards][0]
|
45
|
-
}
|
46
|
-
)
|