testcentricity_web 0.8.2 → 0.8.3

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: e42ac93ef15779ceee1ea3c82e998a92e0dbf2d0
4
- data.tar.gz: ad99dbd1f03c653cba860d51cf5707fbe8f02532
3
+ metadata.gz: e7a8bd1506e8dca866cb4eb471864452a4553c14
4
+ data.tar.gz: 8d82ed2f8313b4469f2fe5ed718e70e7fb3a2389
5
5
  SHA512:
6
- metadata.gz: 228a1e59a8bf01d884bbf8dcc76e6471adea078244f55ec8cb2cd8a7c2996a700b8e66fdd2e6494f4b3dcde23a391d6bd59641ad849f01840df2c0ff48418b97
7
- data.tar.gz: 107ddf980a20d340dc348863e122305e5ab6cbe49f53926f1ad35fc307a6afeb08a1203d1130fd811f6233dd0153e7ed1f4f59910ad2b75841a88eff279f5035
6
+ metadata.gz: 3a11e9d5127c6e7b7696fe9848d82ea9e567b08e9fe0ecc310bfa9d64106a6217d006983c1eb07e3ef794719218066427313f52d9ac09f67bcde06e4346a78d1
7
+ data.tar.gz: 513cbce517d55774862934a9e7d16eff505bfa03a78805d335a80935113a14ca05cb4b134f5fdb25f3b1f110b9f3f02d6c40ebd4f40c852384fa02cf682770ba
@@ -27,8 +27,6 @@ module TestCentricity
27
27
  else
28
28
  first(:css, 'li.active-result', text: option).click
29
29
  end
30
- elsif first(:xpath, "//ul/li")
31
- first(:xpath, "//ul/li", text: option).click
32
30
  else
33
31
  if option.is_a?(Array)
34
32
  option.each do |item|
@@ -1,11 +1,46 @@
1
1
  module TestCentricity
2
2
  class Table < UIElement
3
+ attr_accessor :table_body
4
+ attr_accessor :table_row
5
+ attr_accessor :table_column
6
+ attr_accessor :table_header
7
+ attr_accessor :header_row
8
+ attr_accessor :header_column
9
+
3
10
  def initialize(parent, locator, context)
4
- @parent = parent
5
- @locator = locator
6
- @context = context
7
- @type = :table
8
- @alt_locator = nil
11
+ @parent = parent
12
+ @locator = locator
13
+ @context = context
14
+ @type = :table
15
+ @alt_locator = nil
16
+
17
+ table_spec = { :table_body => 'tbody',
18
+ :table_row => 'tr',
19
+ :table_column => 'td',
20
+ :table_header => 'thead',
21
+ :header_row => 'tr',
22
+ :header_column => 'th'
23
+ }
24
+ define_table_elements(table_spec)
25
+ end
26
+
27
+ def define_table_elements(element_spec)
28
+ element_spec.each do | element, value |
29
+ case element
30
+ when :table_body
31
+ @table_body = value
32
+ when :table_row
33
+ @table_row = value
34
+ when :table_column
35
+ @table_column = value
36
+ when :table_header
37
+ @table_header = value
38
+ when :header_row
39
+ @header_row = value
40
+ when :header_column
41
+ @header_column = value
42
+ end
43
+ end
9
44
  end
10
45
 
11
46
  # Return number of rows in a table object.
@@ -16,7 +51,7 @@ module TestCentricity
16
51
  #
17
52
  def get_row_count
18
53
  wait_until_exists(5)
19
- row_count = page.all(:xpath, "#{@locator}/tbody/tr", :visible => :all).count
54
+ row_count = page.all(:xpath, "#{@locator}/#{@table_body}/#{@table_row}", :visible => :all).count
20
55
  row_count
21
56
  end
22
57
 
@@ -29,11 +64,11 @@ module TestCentricity
29
64
  def get_column_count
30
65
  row_count = get_row_count
31
66
  if row_count == 0
32
- page.all(:xpath, "#{@locator}/thead/tr/th", :visible => :all).count
67
+ page.all(:xpath, "#{@locator}/#{@table_header}/#{@header_row}/#{@header_column}", :visible => :all).count
33
68
  else
34
69
  (row_count == 1) ?
35
- page.all(:xpath, "#{@locator}/tbody/tr/td", :visible => :all).count :
36
- page.all(:xpath, "#{@locator}/tbody/tr[2]/td", :visible => :all).count
70
+ page.all(:xpath, "#{@locator}/#{@table_body}/#{@table_row}/#{@table_column}", :visible => :all).count :
71
+ page.all(:xpath, "#{@locator}/#{@table_body}/#{@table_row}[2]/#{@table_column}", :visible => :all).count
37
72
  end
38
73
  end
39
74
 
@@ -128,8 +163,8 @@ module TestCentricity
128
163
  row_count = get_row_count
129
164
  raise "Row #{row} exceeds number of rows (#{row_count}) in table #{@locator}" if row > row_count
130
165
  (row > 1) ?
131
- set_alt_locator("#{@locator}/tbody/tr[#{row}]") :
132
- set_alt_locator("#{@locator}/tbody/tr")
166
+ set_alt_locator("#{@locator}/#{@table_body}/#{@table_row}[#{row}]") :
167
+ set_alt_locator("#{@locator}/#{@table_body}/#{@table_row}")
133
168
  value = get_value if exists?
134
169
  clear_alt_locator
135
170
  value
@@ -255,7 +290,7 @@ module TestCentricity
255
290
  def click_header_column(column)
256
291
  column_count = get_column_count
257
292
  raise "Column #{column} exceeds number of columns (#{column_count}) in table header #{@locator}" if column > column_count
258
- set_alt_locator("#{@locator}/thead/tr/th[#{column}]")
293
+ set_alt_locator("#{@locator}//#{@table_header}/#{@header_row}/#{@header_column}[#{column}]")
259
294
  click if exists?
260
295
  clear_alt_locator
261
296
  end
@@ -263,7 +298,7 @@ module TestCentricity
263
298
  def get_header_column(column)
264
299
  column_count = get_column_count
265
300
  raise "Column #{column} exceeds number of columns (#{column_count}) in table header #{@locator}" if column > column_count
266
- set_alt_locator("#{@locator}/thead/tr/th[#{column}]")
301
+ set_alt_locator("#{@locator}//#{@table_header}/#{@header_row}/#{@header_column}[#{column}]")
267
302
  value = get_value(:all) if exists?(:all)
268
303
  clear_alt_locator
269
304
  value
@@ -273,14 +308,13 @@ module TestCentricity
273
308
  columns = []
274
309
  column_count = get_column_count
275
310
  (1..column_count).each do |column|
276
- set_alt_locator("#{@locator}/thead/tr/th[#{column}]")
311
+ set_alt_locator("#{@locator}//#{@table_header}/#{@header_row}/#{@header_column}[#{column}]")
277
312
  columns.push(get_value(:all)) if exists?(:all)
278
313
  end
279
314
  clear_alt_locator
280
315
  columns
281
316
  end
282
317
 
283
-
284
318
  def is_table_row_expanded?(row, column)
285
319
  row_count = get_row_count
286
320
  raise "Row #{row} exceeds number of rows (#{row_count}) in table #{@locator}" if row > row_count
@@ -324,9 +358,9 @@ module TestCentricity
324
358
  private
325
359
 
326
360
  def set_table_cell_locator(row, column)
327
- row_spec = "#{@locator}/tbody/tr"
361
+ row_spec = "#{@locator}/#{@table_body}/#{@table_row}"
328
362
  row_spec = "#{row_spec}[#{row}]" if row > 1
329
- column_spec = "/td[#{column}]"
363
+ column_spec = "/#{@table_column}[#{column}]"
330
364
  set_alt_locator("#{row_spec}#{column_spec}")
331
365
  end
332
366
 
@@ -197,6 +197,20 @@ module TestCentricity
197
197
  raise "Could not find element #{@locator} after #{timeout} seconds" unless exists?
198
198
  end
199
199
 
200
+ # Wait until the object is visible, or until the specified wait time has expired.
201
+ #
202
+ # @param seconds [Integer or Float] wait time in seconds
203
+ # @example
204
+ # run_button.wait_until_visible(0.5)
205
+ #
206
+ def wait_until_visible(seconds = nil)
207
+ timeout = seconds.nil? ? Capybara.default_max_wait_time : seconds
208
+ wait = Selenium::WebDriver::Wait.new(timeout: timeout)
209
+ wait.until { visible? }
210
+ rescue
211
+ raise "Could not find element #{@locator} after #{timeout} seconds" unless exists?
212
+ end
213
+
200
214
  # Wait until the object no longer exists, or until the specified wait time has expired.
201
215
  #
202
216
  # @param seconds [Integer or Float] wait time in seconds
@@ -1,3 +1,3 @@
1
1
  module TestCentricityWeb
2
- VERSION = '0.8.2'
2
+ VERSION = '0.8.3'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: testcentricity_web
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.2
4
+ version: 0.8.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - A.J. Mrozinski
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-25 00:00:00.000000000 Z
11
+ date: 2016-04-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler