selenium_page 0.0.1 → 0.1.0
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 +35 -2
- data/lib/selenium_page.rb +19 -6
- data/lib/selenium_page/errors.rb +13 -0
- data/lib/selenium_page/page.rb +37 -0
- data/lib/selenium_page/page/errors.rb +38 -0
- metadata +148 -5
- data/lib/selenium_page/translator.rb +0 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ab847fdc76365d1ffd7c7fb59a4088b87cfaa5b66745051e644905ef836be483
|
4
|
+
data.tar.gz: 459b3d3fea8f2ebcad887c082742100d994fc0cceb66e319bd986f28bb9057dd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7110393c893d10dd01cfeef086b9e8565ce20fbff1b16fc2d4eeee7474352317bb3420e6f7d630f2326dd0a631fac14422d44dea238596e73153f07093aa04a5
|
7
|
+
data.tar.gz: fb9cf871cf2c2f8f468208acb16eaff57734e40946bb8fe79811cb8361fb5d2fc00212b44ad268d32d39b4d8c2ebc9468b51c0814b90c1637a741c3697c39cb0
|
data/README.md
CHANGED
@@ -1,2 +1,35 @@
|
|
1
|
-
#
|
2
|
-
|
1
|
+
# Selenium Page
|
2
|
+
|
3
|
+
This gem implement the Page Object Pattern on the top of :
|
4
|
+
|
5
|
+
https://github.com/SeleniumHQ/selenium/tree/master/rb
|
6
|
+
|
7
|
+
## Testing
|
8
|
+
|
9
|
+
https://github.com/rspec/rspec
|
10
|
+
|
11
|
+
### Command
|
12
|
+
|
13
|
+
bundle exec rspec
|
14
|
+
|
15
|
+
## Code Style
|
16
|
+
|
17
|
+
https://github.com/bbatsov/rubocop
|
18
|
+
|
19
|
+
### Command
|
20
|
+
|
21
|
+
bundle exec rubocop
|
22
|
+
|
23
|
+
## Documentation (todo ..)
|
24
|
+
|
25
|
+
https://github.com/lsegal/yard
|
26
|
+
|
27
|
+
### Command
|
28
|
+
|
29
|
+
Start a local server for documentation on : http://localhost:8808
|
30
|
+
|
31
|
+
bundle exec yard server -r 'lib/**/*.rb'
|
32
|
+
|
33
|
+
Or simply compile the documentation :
|
34
|
+
|
35
|
+
bundle exec yard doc 'lib/**/*.rb'
|
data/lib/selenium_page.rb
CHANGED
@@ -1,9 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# external
|
4
|
+
require 'selenium-webdriver'
|
5
|
+
|
1
6
|
# SeleniumPage
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
7
|
+
module SeleniumPage
|
8
|
+
require_relative 'selenium_page/errors'
|
9
|
+
require_relative 'selenium_page/page'
|
10
|
+
|
11
|
+
def self.configure_scheme_and_authority(scheme_and_authority)
|
12
|
+
unless scheme_and_authority.is_a? String
|
13
|
+
raise Errors::UnexpectedSchemeAndAuthority
|
14
|
+
end
|
15
|
+
|
16
|
+
@scheme_and_authority = scheme_and_authority
|
6
17
|
end
|
7
|
-
end
|
8
18
|
|
9
|
-
|
19
|
+
def self.scheme_and_authority
|
20
|
+
@scheme_and_authority
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module SeleniumPage
|
4
|
+
# Page
|
5
|
+
class Page
|
6
|
+
require_relative 'page/errors'
|
7
|
+
|
8
|
+
def self.configure_url(url)
|
9
|
+
raise Errors::UnexpectedUrl unless url.is_a? String
|
10
|
+
|
11
|
+
@url = url
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.url
|
15
|
+
@url
|
16
|
+
end
|
17
|
+
|
18
|
+
def initialize(driver)
|
19
|
+
raise Errors::WrongDriver unless driver.is_a? Selenium::WebDriver::Driver
|
20
|
+
|
21
|
+
@page = driver
|
22
|
+
end
|
23
|
+
|
24
|
+
def url
|
25
|
+
self.class.url
|
26
|
+
end
|
27
|
+
|
28
|
+
def get
|
29
|
+
raise Errors::UrlNotSet unless self.class.url
|
30
|
+
|
31
|
+
scheme_and_authority = SeleniumPage.scheme_and_authority
|
32
|
+
raise Errors::SchemeAndAuthorityNotSet unless scheme_and_authority
|
33
|
+
|
34
|
+
@page.get scheme_and_authority + self.class.url
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module SeleniumPage
|
4
|
+
# Page
|
5
|
+
class Page
|
6
|
+
# Errors
|
7
|
+
class Errors
|
8
|
+
# SchemeAndAuthorityNotSet
|
9
|
+
class SchemeAndAuthorityNotSet < StandardError
|
10
|
+
def message
|
11
|
+
'Please set scheme_and_authority for SeleniumPage' \
|
12
|
+
" with '.configure_scheme_and_authority'"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
# UnexpectedUrl
|
17
|
+
class UnexpectedUrl < StandardError
|
18
|
+
def message
|
19
|
+
"Only 'String' are accepted as page_url parameter"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
# UrlNotSet
|
24
|
+
class UrlNotSet < StandardError
|
25
|
+
def message
|
26
|
+
"Please set url for the page with '.set_url'"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# WrongDriver
|
31
|
+
class WrongDriver < StandardError
|
32
|
+
def message
|
33
|
+
"Only 'Selenium::WebDriver::Driver' are accepted as driver parameter"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: selenium_page
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Massimiliano De Vivo
|
@@ -9,8 +9,149 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
date: 2018-03-16 00:00:00.000000000 Z
|
12
|
-
dependencies:
|
13
|
-
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: selenium-webdriver
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 3.8.0
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 3.8.0
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 3.8.0
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 3.8.0
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: chromedriver-helper
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: 1.2.0
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 1.2.0
|
43
|
+
type: :development
|
44
|
+
prerelease: false
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: 1.2.0
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 1.2.0
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: pry-byebug
|
55
|
+
requirement: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - "~>"
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: 3.5.0
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 3.5.0
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 3.5.0
|
70
|
+
- - ">="
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: 3.5.0
|
73
|
+
- !ruby/object:Gem::Dependency
|
74
|
+
name: rspec
|
75
|
+
requirement: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - "~>"
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: 3.7.0
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 3.7.0
|
83
|
+
type: :development
|
84
|
+
prerelease: false
|
85
|
+
version_requirements: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 3.7.0
|
90
|
+
- - ">="
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: 3.7.0
|
93
|
+
- !ruby/object:Gem::Dependency
|
94
|
+
name: rubocop
|
95
|
+
requirement: !ruby/object:Gem::Requirement
|
96
|
+
requirements:
|
97
|
+
- - "~>"
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: 0.53.0
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: 0.53.0
|
103
|
+
type: :development
|
104
|
+
prerelease: false
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - "~>"
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 0.53.0
|
110
|
+
- - ">="
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: 0.53.0
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: simplecov
|
115
|
+
requirement: !ruby/object:Gem::Requirement
|
116
|
+
requirements:
|
117
|
+
- - "~>"
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: 0.16.0
|
120
|
+
- - ">="
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: 0.16.0
|
123
|
+
type: :development
|
124
|
+
prerelease: false
|
125
|
+
version_requirements: !ruby/object:Gem::Requirement
|
126
|
+
requirements:
|
127
|
+
- - "~>"
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
version: 0.16.0
|
130
|
+
- - ">="
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: 0.16.0
|
133
|
+
- !ruby/object:Gem::Dependency
|
134
|
+
name: yard
|
135
|
+
requirement: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - "~>"
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: 0.9.0
|
140
|
+
- - ">="
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: 0.9.0
|
143
|
+
type: :development
|
144
|
+
prerelease: false
|
145
|
+
version_requirements: !ruby/object:Gem::Requirement
|
146
|
+
requirements:
|
147
|
+
- - "~>"
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: 0.9.0
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: 0.9.0
|
153
|
+
description: This gems aims to simplify the organization of support files when using
|
154
|
+
the Selenium Webdriver gem directly
|
14
155
|
email: maxtru2005@gmail.com
|
15
156
|
executables: []
|
16
157
|
extensions: []
|
@@ -19,8 +160,10 @@ files:
|
|
19
160
|
- LICENSE.md
|
20
161
|
- README.md
|
21
162
|
- lib/selenium_page.rb
|
22
|
-
- lib/selenium_page/
|
23
|
-
|
163
|
+
- lib/selenium_page/errors.rb
|
164
|
+
- lib/selenium_page/page.rb
|
165
|
+
- lib/selenium_page/page/errors.rb
|
166
|
+
homepage: https://github.com/mooikos/selenium_page
|
24
167
|
licenses:
|
25
168
|
- MIT
|
26
169
|
metadata: {}
|