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