ui_interactors 0.2.1 → 0.3.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/lib/ui_interactors/interactors.rb +1 -1
- data/lib/ui_interactors/interactors/row_interactor.rb +3 -3
- data/lib/ui_interactors/interactors/{element_interactor.rb → text_interactor.rb} +2 -2
- data/lib/ui_interactors/interactors/view_interactor.rb +2 -2
- data/lib/ui_interactors/minitest/interactor_test.rb +1 -1
- data/lib/ui_interactors/version.rb +1 -1
- data/ui_interactors.gemspec +2 -2
- metadata +7 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d3745968707f2a799e6f00dbfcbb515b082760e9
|
4
|
+
data.tar.gz: 0e6cfc22d013927d83a72c54a1bd380dbda684b1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 84d3c480f284b67df9a9ced5fada333a10b0b596c7ef3e39a113d70579f4f95acafe3cee29fb56815e3ddd3a803dc506fda38c03a1f11ecbb7cba6975fe34cc4
|
7
|
+
data.tar.gz: 44b6a566387308cc9cff3a6f7bfa3efd44be8d701c5311f930b1441126586f4c462d58101641a5729b76ba880a88ce29f034bc9977506e4a840c95ddeecc1ae5
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require_relative 'interactors/base_interactor'
|
2
2
|
require_relative 'interactors/action_interactor'
|
3
|
-
require_relative 'interactors/
|
3
|
+
require_relative 'interactors/text_interactor'
|
4
4
|
require_relative 'interactors/text_field_interactor'
|
5
5
|
require_relative 'interactors/dropdown_field_interactor'
|
6
6
|
require_relative 'interactors/checkbox_field_interactor'
|
@@ -8,11 +8,11 @@ module UiInteractors module Interactors class RowInteractor < ViewInteractor
|
|
8
8
|
private
|
9
9
|
|
10
10
|
def current_xpath
|
11
|
-
elements = @selector_options.fetch(:
|
11
|
+
elements = @selector_options.fetch(:texts)
|
12
12
|
# row selector looks like this:
|
13
|
-
# "//*[@data-
|
13
|
+
# "//*[@data-text='firstName' and normalize-space(text())='John']//ancestor::*[@data-view='row']//*[@data-text='lastName' and normalize-space(text())='Miller']//ancestor::*[@data-view='row']"
|
14
14
|
# The generated xpath traverses down into the row and then back up to the row element itself
|
15
|
-
row_selector = elements.map { |key, value| "//*[@data-
|
15
|
+
row_selector = elements.map { |key, value| "//*[@data-text='#{key}' and normalize-space(text())='#{value}']//ancestor::*[@data-view='row']" }.join
|
16
16
|
"#{@xpath_root}//*[@data-view='row']#{row_selector}"
|
17
17
|
end
|
18
18
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
module UiInteractors module Interactors class
|
1
|
+
module UiInteractors module Interactors class TextInteractor < BaseInteractor
|
2
2
|
|
3
3
|
def initialize(driver, name, xpath_root='//*')
|
4
4
|
super
|
@@ -15,7 +15,7 @@ module UiInteractors module Interactors class ElementInteractor < BaseInteractor
|
|
15
15
|
private
|
16
16
|
|
17
17
|
def current_xpath
|
18
|
-
"#{@xpath_root}//*[@data-
|
18
|
+
"#{@xpath_root}//*[@data-text='#{@name}']"
|
19
19
|
end
|
20
20
|
|
21
21
|
end end end
|
@@ -12,8 +12,8 @@ module UiInteractors module Interactors class ViewInteractor < BaseInteractor
|
|
12
12
|
ActionInteractor.new(@driver, name, current_xpath)
|
13
13
|
end
|
14
14
|
|
15
|
-
def
|
16
|
-
|
15
|
+
def text(name)
|
16
|
+
TextInteractor.new(@driver, name, current_xpath)
|
17
17
|
end
|
18
18
|
|
19
19
|
def list(name)
|
@@ -14,7 +14,7 @@ module UiInteractors class InteractorTest < Minitest::Test
|
|
14
14
|
@root_view = UiInteractors::Interactors::ViewInteractor.new(@driver)
|
15
15
|
end
|
16
16
|
|
17
|
-
def_delegators :root_view, :view, :action, :
|
17
|
+
def_delegators :root_view, :view, :action, :text, :list, :text_field, :dropdown_field, :checkbox_field
|
18
18
|
|
19
19
|
def provide_driver
|
20
20
|
raise('Subclass must define `#provide_driver()`')
|
data/ui_interactors.gemspec
CHANGED
@@ -9,8 +9,8 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = ["Kevin Rood"]
|
10
10
|
spec.email = ["kevin.rood@accelecode.com"]
|
11
11
|
|
12
|
-
spec.summary = %q{
|
13
|
-
spec.description = %q{
|
12
|
+
spec.summary = %q{ui_interactors makes it simple to write automated browser tests using selenium-webdriver - tests which are resilient to HTML structure and style changes.}
|
13
|
+
spec.description = %q{ui_interactors makes it simple to write automated browser tests using selenium-webdriver - tests which are resilient to HTML structure and style changes.}
|
14
14
|
spec.homepage = "https://github.com/accelecode/ui_interactors"
|
15
15
|
spec.license = "Apache-2.0"
|
16
16
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ui_interactors
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kevin Rood
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-05-
|
11
|
+
date: 2017-05-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -52,7 +52,8 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '2.52'
|
55
|
-
description:
|
55
|
+
description: ui_interactors makes it simple to write automated browser tests using
|
56
|
+
selenium-webdriver - tests which are resilient to HTML structure and style changes.
|
56
57
|
email:
|
57
58
|
- kevin.rood@accelecode.com
|
58
59
|
executables: []
|
@@ -70,10 +71,10 @@ files:
|
|
70
71
|
- lib/ui_interactors/interactors/base_interactor.rb
|
71
72
|
- lib/ui_interactors/interactors/checkbox_field_interactor.rb
|
72
73
|
- lib/ui_interactors/interactors/dropdown_field_interactor.rb
|
73
|
-
- lib/ui_interactors/interactors/element_interactor.rb
|
74
74
|
- lib/ui_interactors/interactors/list_interactor.rb
|
75
75
|
- lib/ui_interactors/interactors/row_interactor.rb
|
76
76
|
- lib/ui_interactors/interactors/text_field_interactor.rb
|
77
|
+
- lib/ui_interactors/interactors/text_interactor.rb
|
77
78
|
- lib/ui_interactors/interactors/view_interactor.rb
|
78
79
|
- lib/ui_interactors/minitest/interactor_test.rb
|
79
80
|
- lib/ui_interactors/version.rb
|
@@ -102,5 +103,6 @@ rubyforge_project:
|
|
102
103
|
rubygems_version: 2.6.8
|
103
104
|
signing_key:
|
104
105
|
specification_version: 4
|
105
|
-
summary:
|
106
|
+
summary: ui_interactors makes it simple to write automated browser tests using selenium-webdriver
|
107
|
+
- tests which are resilient to HTML structure and style changes.
|
106
108
|
test_files: []
|