watigiri 0.3.2 → 0.4.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/watigiri/locators/element/locator.rb +23 -5
- data/watigiri.gemspec +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2fd0e4b0bff75232878fbfa396d89e6d8c6bafbc
|
|
4
|
+
data.tar.gz: 06ee3c3acf02723a8de7aca0b02e8f84422b56f5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8f919b5c53a445536ef18177c5609bce92995072a32048268c82763f262aa25916184e4c9fc07ce1a5d800001cd5b4090a2347f4fabd4208915e266c5df821c1
|
|
7
|
+
data.tar.gz: 5dd9eb0bf66df384af9ff4430bc26e0e32e87b2ca07c372ad969b2d831fab0b2b92e7f071482dfe98a6113ed1d62bed1bb5c0b0fdddaba5a5d56e65400e3ceea
|
|
@@ -8,7 +8,7 @@ module Watigiri
|
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
def tag_name
|
|
11
|
-
element.name
|
|
11
|
+
element.name.downcase
|
|
12
12
|
end
|
|
13
13
|
end
|
|
14
14
|
|
|
@@ -19,8 +19,13 @@ module Watigiri
|
|
|
19
19
|
@regex = regex?
|
|
20
20
|
|
|
21
21
|
return super unless @nokogiri || @regex
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
@query_scope.doc ||= if @query_scope.is_a?(Watir::Browser)
|
|
23
|
+
Nokogiri::HTML(@query_scope.html).tap { |d| d.css('script').remove }
|
|
24
|
+
else
|
|
25
|
+
# This should be using `#fragment`, but can't because of
|
|
26
|
+
# https://github.com/sparklemotion/nokogiri/issues/572
|
|
27
|
+
Nokogiri::HTML(@query_scope.inner_html)
|
|
28
|
+
end
|
|
24
29
|
|
|
25
30
|
element = using_watir(:first)
|
|
26
31
|
return if element.nil?
|
|
@@ -63,11 +68,12 @@ module Watigiri
|
|
|
63
68
|
def nokogiri_to_selenium(element)
|
|
64
69
|
return element if element.is_a?(Selenium::WebDriver::Element)
|
|
65
70
|
tag = element.tag_name
|
|
66
|
-
index = @query_scope.doc.xpath("
|
|
71
|
+
index = @query_scope.doc.xpath(".//#{tag}").find_index { |el| el == element.element }
|
|
67
72
|
Watir::Element.new(@query_scope, index: index, tag_name: tag).wd
|
|
68
73
|
end
|
|
69
74
|
|
|
70
75
|
def regex?
|
|
76
|
+
return false unless (@selector.keys & %i[adjacent visible label text visible_text]).empty?
|
|
71
77
|
@selector.values.any? { |v| v.is_a?(Regexp) }
|
|
72
78
|
end
|
|
73
79
|
end
|
|
@@ -88,12 +94,22 @@ module Watigiri
|
|
|
88
94
|
class Cell
|
|
89
95
|
class Locator < Watir::Locators::Cell::Locator
|
|
90
96
|
include LocatorHelpers
|
|
97
|
+
|
|
98
|
+
# Don't use for rows
|
|
99
|
+
def regex?
|
|
100
|
+
false
|
|
101
|
+
end
|
|
91
102
|
end
|
|
92
103
|
end
|
|
93
104
|
|
|
94
105
|
class Row
|
|
95
106
|
class Locator < Watir::Locators::Row::Locator
|
|
96
107
|
include LocatorHelpers
|
|
108
|
+
|
|
109
|
+
# Don't use for rows
|
|
110
|
+
def regex?
|
|
111
|
+
false
|
|
112
|
+
end
|
|
97
113
|
end
|
|
98
114
|
end
|
|
99
115
|
|
|
@@ -102,6 +118,7 @@ module Watigiri
|
|
|
102
118
|
include LocatorHelpers
|
|
103
119
|
|
|
104
120
|
def regex?
|
|
121
|
+
return false unless (@selector.keys & %i[adjacent visible label text visible_text]).empty?
|
|
105
122
|
@selector.any? { |k, v| v.is_a?(Regexp) && k != :value }
|
|
106
123
|
end
|
|
107
124
|
end
|
|
@@ -115,7 +132,7 @@ module Watigiri
|
|
|
115
132
|
return super if element.is_a? Selenium::WebDriver::Element
|
|
116
133
|
rx_selector = rx_selector.dup
|
|
117
134
|
|
|
118
|
-
tag_name = element.
|
|
135
|
+
tag_name = element.tag_name
|
|
119
136
|
|
|
120
137
|
[:text, :value, :label].each do |key|
|
|
121
138
|
if rx_selector.key?(key)
|
|
@@ -130,6 +147,7 @@ module Watigiri
|
|
|
130
147
|
end
|
|
131
148
|
|
|
132
149
|
def regex?
|
|
150
|
+
return false unless (@selector.keys & %i[adjacent visible label text visible_text]).empty?
|
|
133
151
|
@selector.any? { |k, v| v.is_a?(Regexp) && k != :value }
|
|
134
152
|
end
|
|
135
153
|
end
|
data/watigiri.gemspec
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: watigiri
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Titus Fortner
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2018-05-
|
|
11
|
+
date: 2018-05-13 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|