watigiri 0.3.2 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: acd708121fc8cb20c263c683acf3b021c396fc16
4
- data.tar.gz: ed2524285816a2add8b394598141115556ed7dc8
3
+ metadata.gz: 2fd0e4b0bff75232878fbfa396d89e6d8c6bafbc
4
+ data.tar.gz: 06ee3c3acf02723a8de7aca0b02e8f84422b56f5
5
5
  SHA512:
6
- metadata.gz: 42ca74e87402d2a77a9777795814f0e95cb731f8ee1bbad710b8d35703e590d9f2dee3b1e9c04b1ad06234821a0882cc96c699dde6587cb3bc383093e4847419
7
- data.tar.gz: 5a01f63348806558b179d4f2285ba2eddc3ed9298f3063d1b8790c9156bda4f9d5a427038488bbb1d2635a236f6da89492ca367aafaf2302c494462cbe111616
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
- command = @query_scope.is_a?(Watir::Browser) ? :html : :inner_html
23
- @query_scope.doc ||= Nokogiri::HTML(@query_scope.send(command)).tap { |d| d.css('script').remove }
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("//#{tag}").find_index { |el| el == element.element }
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.name.downcase
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
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "watigiri"
7
- spec.version = "0.3.2"
7
+ spec.version = "0.4.0"
8
8
  spec.authors = ["Titus Fortner"]
9
9
  spec.email = ["titusfortner@gmail.com"]
10
10
 
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.3.2
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 00:00:00.000000000 Z
11
+ date: 2018-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler