testcentricity_web 3.2.25 → 4.0.2

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.
Files changed (31) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +43 -0
  3. data/README.md +66 -33
  4. data/lib/testcentricity_web/browser_helper.rb +21 -13
  5. data/lib/testcentricity_web/data_objects/data_objects_helper.rb +34 -5
  6. data/lib/testcentricity_web/data_objects/environment.rb +30 -5
  7. data/lib/testcentricity_web/data_objects/excel_helper.rb +1 -25
  8. data/lib/testcentricity_web/version.rb +1 -1
  9. data/lib/testcentricity_web/web_core/page_object.rb +1 -93
  10. data/lib/testcentricity_web/web_core/page_objects_helper.rb +1 -7
  11. data/lib/testcentricity_web/web_core/page_section.rb +0 -91
  12. data/lib/testcentricity_web/web_core/webdriver_helper.rb +100 -41
  13. data/lib/testcentricity_web/web_elements/checkbox.rb +1 -15
  14. data/lib/testcentricity_web/web_elements/file_field.rb +1 -1
  15. data/lib/testcentricity_web/web_elements/radio.rb +1 -1
  16. data/lib/testcentricity_web/web_elements/select_list.rb +0 -52
  17. data/lib/testcentricity_web/web_elements/ui_elements_helper.rb +5 -14
  18. data/lib/testcentricity_web/world_extensions.rb +1 -1
  19. data/lib/testcentricity_web.rb +1 -11
  20. metadata +6 -18
  21. data/Gemfile.lock +0 -114
  22. data/lib/testcentricity_web/web_elements/cell_button.rb +0 -8
  23. data/lib/testcentricity_web/web_elements/cell_checkbox.rb +0 -38
  24. data/lib/testcentricity_web/web_elements/cell_element.rb +0 -69
  25. data/lib/testcentricity_web/web_elements/cell_image.rb +0 -8
  26. data/lib/testcentricity_web/web_elements/cell_radio.rb +0 -31
  27. data/lib/testcentricity_web/web_elements/list_button.rb +0 -8
  28. data/lib/testcentricity_web/web_elements/list_checkbox.rb +0 -38
  29. data/lib/testcentricity_web/web_elements/list_element.rb +0 -61
  30. data/lib/testcentricity_web/web_elements/list_radio.rb +0 -31
  31. data/lib/testcentricity_web/web_elements/siebel_open_ui_helper.rb +0 -15
@@ -407,97 +407,6 @@ module TestCentricity
407
407
  element_hash.each(&method(:filefield))
408
408
  end
409
409
 
410
- # Declare and instantiate a cell button in a table column on this page section.
411
- #
412
- # @param element_name [Symbol] name of cell button object (as a symbol)
413
- # @param locator [String] XPath expression that uniquely identifies cell button within row and column of parent table object
414
- # @param table [Symbol] Name (as a symbol) of parent table object
415
- # @param column [Integer] 1-based index of table column that contains the cell button object
416
- # @example
417
- # cell_button :show_button, "a[@class='show']", :data_table, 5
418
- # cell_button :edit_button, "a[@class='edit']", :data_table, 5
419
- #
420
- def self.cell_button(element_name, locator, table, column)
421
- class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::CellButton.new("#{element_name}", self, "#{locator}", :section, #{table}, #{column});end))
422
- end
423
-
424
- # Declare and instantiate a cell checkbox in a table column on this page section.
425
- #
426
- # @param element_name [Symbol] name of cell checkbox object (as a symbol)
427
- # @param locator [String] XPath expression that uniquely identifies cell checkbox within row and column of parent table object
428
- # @param table [Symbol] Name (as a symbol) of parent table object
429
- # @param column [Integer] 1-based index of table column that contains the cell checkbox object
430
- # @example
431
- # cell_checkbox :is_registered_check, "a[@class='registered']", :data_table, 4
432
- #
433
- def self.cell_checkbox(element_name, locator, table, column, proxy = nil)
434
- class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::CellCheckBox.new("#{element_name}", self, "#{locator}", :section, #{table}, #{column}, #{proxy});end))
435
- end
436
-
437
- # Declare and instantiate a cell radio in a table column on this page section.
438
- #
439
- # @param element_name [Symbol] name of cell radio object (as a symbol)
440
- # @param locator [String] XPath expression that uniquely identifies cell radio within row and column of parent table object
441
- # @param table [Symbol] Name (as a symbol) of parent table object
442
- # @param column [Integer] 1-based index of table column that contains the cell radio object
443
- # @example
444
- # cell_radio :track_a_radio, "a[@class='track_a']", :data_table, 8
445
- #
446
- def self.cell_radio(element_name, locator, table, column, proxy = nil)
447
- class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::CellRadio.new("#{element_name}", self, "#{locator}", :section, #{table}, #{column}, #{proxy});end))
448
- end
449
-
450
- # Declare and instantiate a cell image in a table column on this page object.
451
- #
452
- # @param element_name [Symbol] name of cell image object (as a symbol)
453
- # @param locator [String] XPath expression that uniquely identifies cell image within row and column of parent table object
454
- # @param table [Symbol] Name (as a symbol) of parent table object
455
- # @param column [Integer] 1-based index of table column that contains the cell image object
456
- # @example
457
- # cell_image :ready_icon, "img[@class='ready']", :data_table, 3
458
- # cell_image :send_icon, "img[@class='send']", :data_table, 3
459
- #
460
- def self.cell_image(element_name, locator, table, column)
461
- class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::CellImage.new("#{element_name}", self, "#{locator}", :section, #{table}, #{column});end))
462
- end
463
-
464
- # Declare and instantiate a list button in a row of a list object on this section object.
465
- #
466
- # @param element_name [Symbol] name of list button object (as a symbol)
467
- # @param locator [String] XPath expression that uniquely identifies list button within row of parent list object
468
- # @param list [Symbol] Name (as a symbol) of parent list object
469
- # @example
470
- # list_button :delete_button, "a[@class='delete']", :icon_list
471
- # list_button :edit_button, "a[@class='edit']", :icon_list
472
- #
473
- def self.list_button(element_name, locator, list)
474
- class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::ListButton.new("#{element_name}", self, "#{locator}", :section, #{list});end))
475
- end
476
-
477
- # Declare and instantiate a list checkbox in a row of a list object on this section object.
478
- #
479
- # @param element_name [Symbol] name of list checkbox object (as a symbol)
480
- # @param locator [String] XPath expression that uniquely identifies list checkbox within row of parent list object
481
- # @param list [Symbol] Name (as a symbol) of parent list object
482
- # @example
483
- # list_checkbox :is_registered_check, "a[@class='registered']", :data_list
484
- #
485
- def self.list_checkbox(element_name, locator, list, proxy = nil)
486
- class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::ListCheckBox.new("#{element_name}", self, "#{locator}", :section, #{list}, #{proxy});end))
487
- end
488
-
489
- # Declare and instantiate a list radio in a row of a list object on this section object.
490
- #
491
- # @param element_name [Symbol] name of list radio object (as a symbol)
492
- # @param locator [String] XPath expression that uniquely identifies list radio within row of parent list object
493
- # @param list [Symbol] Name (as a symbol) of parent list object
494
- # @example
495
- # list_radio :sharing_radio, "a[@class='sharing']", :data_list
496
- #
497
- def self.list_radio(element_name, locator, list, proxy = nil)
498
- class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::CellRadio.new("#{element_name}", self, "#{locator}", :section, #{list}, #{proxy});end))
499
- end
500
-
501
410
  # Instantiate a single PageSection object within this PageSection object.
502
411
  #
503
412
  # @param section_name [Symbol] name of PageSection object (as a symbol)
@@ -6,14 +6,23 @@ require 'fileutils'
6
6
 
7
7
 
8
8
  module TestCentricity
9
- module WebDriverConnect
9
+ class WebDriverConnect
10
10
  include Capybara::DSL
11
11
 
12
12
  attr_accessor :bs_local
13
13
  attr_accessor :downloads_path
14
14
 
15
- def self.initialize_web_driver(app_host = nil)
16
- Capybara.app_host = app_host unless app_host.nil?
15
+ def self.initialize_web_driver(options = nil)
16
+ desired_caps = nil
17
+ merge_caps = nil
18
+ if options.is_a?(String)
19
+ Capybara.app_host = options
20
+ elsif options.is_a?(Hash)
21
+ Capybara.app_host = options[:app_host] if options.key?(:app_host)
22
+ desired_caps = options[:desired_capabilities] if options.key?(:desired_capabilities)
23
+ merge_caps = options[:merge_capabilities] if options.key?(:merge_capabilities)
24
+ end
25
+
17
26
  browser = ENV['WEB_BROWSER']
18
27
  # set downloads folder path
19
28
  @downloads_path = "#{Dir.pwd}/downloads"
@@ -37,25 +46,25 @@ module TestCentricity
37
46
 
38
47
  context = case browser.downcase.to_sym
39
48
  when :appium
40
- initialize_appium
49
+ initialize_appium(desired_caps, merge_caps)
41
50
  'mobile device emulator'
42
51
  when :browserstack
43
- initialize_browserstack
52
+ initialize_browserstack(desired_caps, merge_caps)
44
53
  'Browserstack cloud service'
45
54
  when :crossbrowser
46
- initialize_crossbrowser
55
+ initialize_crossbrowser(desired_caps, merge_caps)
47
56
  'CrossBrowserTesting cloud service'
48
57
  when :gridlastic
49
- initialize_gridlastic
58
+ initialize_gridlastic(desired_caps, merge_caps)
50
59
  'Gridlastic cloud service'
51
60
  when :lambdatest
52
- initialize_lambdatest
61
+ initialize_lambdatest(desired_caps, merge_caps)
53
62
  'LambdaTest cloud service'
54
63
  when :saucelabs
55
- initialize_saucelabs
64
+ initialize_saucelabs(desired_caps, merge_caps)
56
65
  'Sauce Labs cloud service'
57
66
  when :testingbot
58
- initialize_testingbot
67
+ initialize_testingbot(desired_caps, merge_caps)
59
68
  'TestingBot cloud service'
60
69
  else
61
70
  if ENV['SELENIUM'] == 'remote'
@@ -124,7 +133,7 @@ module TestCentricity
124
133
 
125
134
  private
126
135
 
127
- def self.initialize_appium
136
+ def self.initialize_appium(desired_caps = nil, merge_caps = false)
128
137
  Environ.platform = :mobile
129
138
  Environ.device_name = ENV['APP_DEVICE']
130
139
  Environ.device_os = ENV['APP_PLATFORM_NAME'].downcase.to_sym
@@ -183,6 +192,10 @@ module TestCentricity
183
192
  desired_capabilities[:systemPort] = ENV['SYSTEM_PORT'] if ENV['SYSTEM_PORT']
184
193
  end
185
194
 
195
+ unless desired_caps.nil?
196
+ desired_capabilities = merge_caps ? desired_capabilities.merge(desired_caps) : desired_caps
197
+ end
198
+
186
199
  Capybara.register_driver :appium do |app|
187
200
  appium_lib_options = { server_url: endpoint }
188
201
  all_options = {
@@ -198,6 +211,8 @@ module TestCentricity
198
211
  'OS X'
199
212
  elsif OS.windows?
200
213
  'Windows'
214
+ elsif OS.linux?
215
+ 'Linux'
201
216
  end
202
217
 
203
218
  browser = ENV['WEB_BROWSER'].downcase.to_sym
@@ -216,8 +231,8 @@ module TestCentricity
216
231
  Capybara.register_driver :selenium do |app|
217
232
  case browser
218
233
  when :safari
219
- desired_caps = Selenium::WebDriver::Remote::Capabilities.safari(cleanSession: true)
220
- Capybara::Selenium::Driver.new(app, browser: browser, desired_capabilities: desired_caps)
234
+ caps = Selenium::WebDriver::Remote::Capabilities.safari(cleanSession: true)
235
+ Capybara::Selenium::Driver.new(app, browser: browser, desired_capabilities: caps)
221
236
  when :ie, :edge
222
237
  Capybara::Selenium::Driver.new(app, browser: browser)
223
238
  when :firefox, :firefox_headless
@@ -240,25 +255,29 @@ module TestCentricity
240
255
  options.args << '--headless' if browser == :firefox_headless
241
256
  Capybara::Selenium::Driver.new(app, browser: :firefox, options: options)
242
257
  when :chrome, :chrome_headless
243
- if browser == :chrome
244
- options = Selenium::WebDriver::Chrome::Options.new
245
- prefs = {
246
- prompt_for_download: false,
247
- directory_upgrade: true,
248
- default_directory: @downloads_path
249
- }
250
- options.add_preference(:download, prefs)
251
- else
252
- options = Selenium::WebDriver::Chrome::Options.new(args: %w[headless disable-gpu no-sandbox])
253
- end
258
+ options = Selenium::WebDriver::Chrome::Options.new
259
+ prefs = {
260
+ prompt_for_download: false,
261
+ directory_upgrade: true,
262
+ default_directory: @downloads_path
263
+ }
264
+ options.add_preference(:download, prefs)
254
265
  options.add_argument('--disable-infobars')
266
+ options.add_argument('--disable-dev-shm-usage')
255
267
  options.add_argument("--lang=#{ENV['LOCALE']}") if ENV['LOCALE']
268
+ if browser == :chrome_headless
269
+ options.add_argument('--headless')
270
+ options.add_argument('--disable-gpu')
271
+ options.add_argument('--no-sandbox')
272
+ end
273
+
256
274
  Capybara::Selenium::Driver.new(app, browser: :chrome, options: options)
257
275
  else
258
276
  if ENV['HOST_BROWSER'] && ENV['HOST_BROWSER'].downcase.to_sym == :chrome
259
277
  user_agent = Browsers.mobile_device_agent(ENV['WEB_BROWSER'])
260
278
  options = Selenium::WebDriver::Chrome::Options.new
261
279
  options.add_argument('--disable-infobars')
280
+ options.add_argument('--disable-dev-shm-usage')
262
281
  options.add_argument("--user-agent='#{user_agent}'")
263
282
  options.add_argument("--lang=#{ENV['LOCALE']}") if ENV['LOCALE']
264
283
  Capybara::Selenium::Driver.new(app, browser: :chrome, options: options)
@@ -270,7 +289,7 @@ module TestCentricity
270
289
  Capybara.default_driver = :selenium
271
290
  end
272
291
 
273
- def self.initialize_browserstack
292
+ def self.initialize_browserstack(desired_caps = nil, merge_caps = false)
274
293
  browser = ENV['BS_BROWSER']
275
294
  Environ.grid = :browserstack
276
295
 
@@ -282,19 +301,22 @@ module TestCentricity
282
301
  elsif ENV['BS_OS']
283
302
  Environ.os = "#{ENV['BS_OS']} #{ENV['BS_OS_VERSION']}"
284
303
  end
304
+ Environ.device = if ENV['BS_REAL_MOBILE']
305
+ :device
306
+ elsif ENV['BS_PLATFORM']
307
+ :simulator
308
+ end
285
309
 
286
310
  endpoint = "http://#{ENV['BS_USERNAME']}:#{ENV['BS_AUTHKEY']}@hub-cloud.browserstack.com/wd/hub"
287
311
  Capybara.register_driver :browserstack do |app|
288
312
  capabilities = Selenium::WebDriver::Remote::Capabilities.new
289
313
 
290
314
  if ENV['BS_REAL_MOBILE']
291
- Environ.device = :device
292
315
  capabilities['device'] = ENV['BS_DEVICE']
293
316
  capabilities['realMobile'] = true
294
317
  capabilities['os_version'] = ENV['BS_OS_VERSION']
295
318
 
296
319
  elsif ENV['BS_PLATFORM']
297
- Environ.device = :simulator
298
320
  capabilities[:platform] = ENV['BS_PLATFORM']
299
321
  capabilities[:browserName] = browser
300
322
  capabilities['device'] = ENV['BS_DEVICE'] if ENV['BS_DEVICE']
@@ -356,6 +378,10 @@ module TestCentricity
356
378
  capabilities['cleanSession'] = 'true'
357
379
  end
358
380
 
381
+ unless desired_caps.nil?
382
+ capabilities = merge_caps ? capabilities.merge(desired_caps) : desired_caps
383
+ end
384
+
359
385
  if ENV['TUNNELING']
360
386
  @bs_local = BrowserStack::Local.new
361
387
  bs_local_args = {'key' => "#{ENV['BS_AUTHKEY']}"}
@@ -384,7 +410,7 @@ module TestCentricity
384
410
  end
385
411
  end
386
412
 
387
- def self.initialize_crossbrowser
413
+ def self.initialize_crossbrowser(desired_caps = nil, merge_caps = false)
388
414
  browser = ENV['CB_BROWSER']
389
415
  Environ.grid = :crossbrowser
390
416
 
@@ -411,6 +437,11 @@ module TestCentricity
411
437
  elsif ENV['CB_PLATFORM']
412
438
  capabilities['os_api_name'] = ENV['CB_PLATFORM']
413
439
  end
440
+
441
+ unless desired_caps.nil?
442
+ capabilities = merge_caps ? capabilities.merge(desired_caps) : desired_caps
443
+ end
444
+
414
445
  Capybara::Selenium::Driver.new(app, browser: :remote, url: endpoint, desired_capabilities: capabilities)
415
446
  end
416
447
 
@@ -426,12 +457,11 @@ module TestCentricity
426
457
  end
427
458
  end
428
459
 
429
- def self.initialize_gridlastic
460
+ def self.initialize_gridlastic(desired_caps = nil, merge_caps = false)
430
461
  browser = ENV['GL_BROWSER']
431
462
  Environ.grid = :gridlastic
432
463
  Environ.os = ENV['GL_OS']
433
464
  endpoint = "http://#{ENV['GL_USERNAME']}:#{ENV['GL_AUTHKEY']}@#{ENV['GL_SUBDOMAIN']}.gridlastic.com:80/wd/hub"
434
-
435
465
  capabilities = Selenium::WebDriver::Remote::Capabilities.new
436
466
  capabilities['browserName'] = browser
437
467
  capabilities['version'] = ENV['GL_VERSION'] if ENV['GL_VERSION']
@@ -439,6 +469,10 @@ module TestCentricity
439
469
  capabilities['platformName'] = ENV['GL_PLATFORM']
440
470
  capabilities['video'] = ENV['RECORD_VIDEO'].capitalize if ENV['RECORD_VIDEO']
441
471
 
472
+ unless desired_caps.nil?
473
+ capabilities = merge_caps ? capabilities.merge(desired_caps) : desired_caps
474
+ end
475
+
442
476
  Capybara.register_driver :selenium do |app|
443
477
  client = Selenium::WebDriver::Remote::Http::Default.new
444
478
  client.timeout = 1200
@@ -462,7 +496,7 @@ module TestCentricity
462
496
  end
463
497
  end
464
498
 
465
- def self.initialize_lambdatest
499
+ def self.initialize_lambdatest(desired_caps = nil, merge_caps = false)
466
500
  browser = ENV['LT_BROWSER']
467
501
  Environ.grid = :lambdatest
468
502
  Environ.os = ENV['LT_OS']
@@ -501,6 +535,10 @@ module TestCentricity
501
535
  end
502
536
  capabilities['build'] = context_message
503
537
 
538
+ unless desired_caps.nil?
539
+ capabilities = merge_caps ? capabilities.merge(desired_caps) : desired_caps
540
+ end
541
+
504
542
  Capybara::Selenium::Driver.new(app, browser: :remote, url: endpoint, desired_capabilities: capabilities)
505
543
  end
506
544
 
@@ -525,13 +563,23 @@ module TestCentricity
525
563
  when :firefox, :safari, :ie, :edge
526
564
  capabilities = Selenium::WebDriver::Remote::Capabilities.send(browser)
527
565
  when :chrome, :chrome_headless
528
- options = browser == :chrome ? %w[--disable-infobars] : %w[headless disable-gpu no-sandbox --disable-infobars]
566
+ options = %w[--disable-infobars]
567
+ options.push('--disable-dev-shm-usage')
529
568
  options.push("--lang=#{ENV['LOCALE']}") if ENV['LOCALE']
569
+ if browser == :chrome_headless
570
+ Environ.headless = true
571
+ options.push('--headless')
572
+ options.push('--disable-gpu')
573
+ options.push('--no-sandbox')
574
+ end
530
575
  capabilities = Selenium::WebDriver::Remote::Capabilities.chrome('goog:chromeOptions' => { args: options })
531
576
  else
532
577
  if ENV['HOST_BROWSER'] && ENV['HOST_BROWSER'].downcase.to_sym == :chrome
578
+ Environ.platform = :mobile
579
+ Environ.device_name = Browsers.mobile_device_name(ENV['WEB_BROWSER'])
533
580
  user_agent = Browsers.mobile_device_agent(ENV['WEB_BROWSER'])
534
581
  options = %w[--disable-infobars]
582
+ options.push('--disable-dev-shm-usage')
535
583
  options.push("--user-agent='#{user_agent}'")
536
584
  options.push("--lang=#{ENV['LOCALE']}") if ENV['LOCALE']
537
585
  capabilities = Selenium::WebDriver::Remote::Capabilities.chrome('goog:chromeOptions' => { args: options })
@@ -539,19 +587,22 @@ module TestCentricity
539
587
  raise "Requested browser '#{browser}' is not supported on Selenium Grid"
540
588
  end
541
589
  end
542
- Capybara::Selenium::Driver.new(app, browser: :remote, url: endpoint, desired_capabilities: capabilities)
590
+ Capybara::Selenium::Driver.new(app,
591
+ browser: :remote,
592
+ url: endpoint,
593
+ desired_capabilities: capabilities).tap do |driver|
594
+ # configure file_detector for remote uploads
595
+ driver.browser.file_detector = lambda do |args|
596
+ str = args.first.to_s
597
+ str if File.exist?(str)
598
+ end
599
+ end
543
600
  end
544
601
  Capybara.current_driver = :remote_browser
545
602
  Capybara.default_driver = :remote_browser
546
- # configure file_detector for remote uploads
547
- selenium = Capybara.page.driver.browser
548
- selenium.file_detector = lambda do |args|
549
- str = args.first.to_s
550
- str if File.exist?(str)
551
- end
552
603
  end
553
604
 
554
- def self.initialize_saucelabs
605
+ def self.initialize_saucelabs(desired_caps = nil, merge_caps = false)
555
606
  browser = ENV['SL_BROWSER']
556
607
  Environ.grid = :saucelabs
557
608
 
@@ -581,6 +632,10 @@ module TestCentricity
581
632
  capabilities['deviceOrientation'] = ENV['ORIENTATION'] if ENV['ORIENTATION']
582
633
  end
583
634
 
635
+ unless desired_caps.nil?
636
+ capabilities = merge_caps ? capabilities.merge(desired_caps) : desired_caps
637
+ end
638
+
584
639
  Capybara::Selenium::Driver.new(app, browser: :remote, url: endpoint, desired_capabilities: capabilities)
585
640
  end
586
641
 
@@ -596,7 +651,7 @@ module TestCentricity
596
651
  end
597
652
  end
598
653
 
599
- def self.initialize_testingbot
654
+ def self.initialize_testingbot(desired_caps = nil, merge_caps = false)
600
655
  browser = ENV['TB_BROWSER']
601
656
  Environ.grid = :testingbot
602
657
 
@@ -629,6 +684,10 @@ module TestCentricity
629
684
  capabilities['deviceName'] = ENV['TB_DEVICE']
630
685
  end
631
686
 
687
+ unless desired_caps.nil?
688
+ capabilities = merge_caps ? capabilities.merge(desired_caps) : desired_caps
689
+ end
690
+
632
691
  Capybara::Selenium::Driver.new(app, browser: :remote, url: endpoint, desired_capabilities: capabilities)
633
692
  end
634
693
 
@@ -117,7 +117,7 @@ module TestCentricity
117
117
  # remember_me_checkbox.uncheck
118
118
  #
119
119
  def uncheck
120
- set_checkbox_state(false)
120
+ set_checkbox_state(state = false)
121
121
  end
122
122
 
123
123
  def verify_check_state(state, enqueue = false)
@@ -127,20 +127,6 @@ module TestCentricity
127
127
  assert_equal(state, actual, "Expected checkbox #{object_ref_message} to be #{state} but found #{actual} instead")
128
128
  end
129
129
 
130
- # Set the check state of a Siebel OUI JCheckBox object.
131
- #
132
- # @param state [Boolean] true = checked / false = unchecked
133
- # @example
134
- # remember_me_checkbox.set_siebel_checkbox_state(true)
135
- #
136
- def set_siebel_checkbox_state(state)
137
- obj, = find_element
138
- object_not_found_exception(obj, 'Siebel checkbox')
139
- raise "UI #{object_ref_message} is not a Siebel CheckBox object" unless get_siebel_object_type == 'JCheckBox'
140
- expected = state.to_bool
141
- obj.click unless expected == obj.checked?
142
- end
143
-
144
130
  # Highlight a checkbox with a 3 pixel wide, red dashed border for the specified wait time.
145
131
  # If wait time is zero, then the highlight will remain until the page is refreshed
146
132
  #
@@ -12,7 +12,7 @@ module TestCentricity
12
12
  end
13
13
 
14
14
  def file_upload(file_path)
15
- obj, = find_element(false)
15
+ obj, = find_element(visible = false)
16
16
  obj.send_keys(file_path)
17
17
  end
18
18
 
@@ -101,7 +101,7 @@ module TestCentricity
101
101
  # accept_terms_radio.unselect
102
102
  #
103
103
  def unselect
104
- set_selected_state(false)
104
+ set_selected_state(state = false)
105
105
  end
106
106
 
107
107
  # Highlight a radio button with a 3 pixel wide, red dashed border for the specified wait time.
@@ -258,58 +258,6 @@ module TestCentricity
258
258
 
259
259
  alias selected? get_selected_option
260
260
 
261
- # Select the specified option in a Siebel OUI select box object.
262
- #
263
- # @param option [String] text of option to select
264
- # @example
265
- # country_select.choose_siebel_option('Cayman Islands')
266
- #
267
- def choose_siebel_option(option)
268
- Capybara.wait_on_first_by_default = true
269
- invoke_siebel_popup
270
- first(:xpath, "//li[@class='ui-menu-item']", exact: true, match: :prefer_exact, text: option).click
271
- end
272
-
273
- # Return array of strings of all options in a Siebel OUI select box object.
274
- #
275
- # @return [Array]
276
- # @example
277
- # all_countries = country_select.get_siebel_options
278
- #
279
- def get_siebel_options
280
- invoke_siebel_popup
281
- sleep(0.5)
282
- options = page.all(:xpath, "//li[@class='ui-menu-item']").collect(&:text)
283
- @base_object, = find_element
284
- @base_object.native.send_keys(:escape)
285
- options
286
- end
287
-
288
- def verify_siebel_options(expected, enqueue = false)
289
- invoke_siebel_popup
290
- sleep(0.5)
291
- actual = page.all(:xpath, "//li[@class='ui-menu-item']").collect(&:text)
292
- if enqueue
293
- ExceptionQueue.enqueue_assert_equal(expected, actual, "Expected list of options in list #{object_ref_message}")
294
- else
295
- assert_equal(expected, actual, "Expected list of options in list #{object_ref_message} to be #{expected} but found #{actual}")
296
- end
297
- @base_object, = find_element
298
- @base_object.native.send_keys(:escape)
299
- end
300
-
301
- # Is Siebel JComboBox set to read-only?
302
- #
303
- # @return [Boolean]
304
- # @example
305
- # country_select.read_only?
306
- #
307
- def read_only?
308
- @base_object, = find_element
309
- object_not_found_exception(@base_object, nil)
310
- !@base_object.native.attribute('readonly')
311
- end
312
-
313
261
  private
314
262
 
315
263
  def select_item(obj, option)
@@ -441,7 +441,7 @@ module TestCentricity
441
441
  # button_width = my_button.width
442
442
  #
443
443
  def width
444
- obj, type = find_element(false)
444
+ obj, type = find_element(visible = false)
445
445
  object_not_found_exception(obj, type)
446
446
  obj.get_width
447
447
  end
@@ -453,7 +453,7 @@ module TestCentricity
453
453
  # button_height = my_button.height
454
454
  #
455
455
  def height
456
- obj, type = find_element(false)
456
+ obj, type = find_element(visible = false)
457
457
  object_not_found_exception(obj, type)
458
458
  obj.get_height
459
459
  end
@@ -465,7 +465,7 @@ module TestCentricity
465
465
  # button_x = my_button.x
466
466
  #
467
467
  def x
468
- obj, type = find_element(false)
468
+ obj, type = find_element(visible = false)
469
469
  object_not_found_exception(obj, type)
470
470
  obj.get_x
471
471
  end
@@ -477,7 +477,7 @@ module TestCentricity
477
477
  # button_y = my_button.y
478
478
  #
479
479
  def y
480
- obj, type = find_element(false)
480
+ obj, type = find_element(visible = false)
481
481
  object_not_found_exception(obj, type)
482
482
  obj.get_y
483
483
  end
@@ -499,7 +499,7 @@ module TestCentricity
499
499
  # basket_link.displayed??
500
500
  #
501
501
  def displayed?
502
- obj, type = find_element(false)
502
+ obj, type = find_element(visible = false)
503
503
  object_not_found_exception(obj, type)
504
504
  obj.displayed?
505
505
  end
@@ -1032,15 +1032,6 @@ module TestCentricity
1032
1032
  end
1033
1033
  end
1034
1034
 
1035
- def invoke_siebel_popup
1036
- obj, = find_element
1037
- object_not_found_exception(obj, 'Siebel object')
1038
- trigger_name = obj.native.attribute('aria-describedby').strip
1039
- trigger = "span##{trigger_name}"
1040
- trigger = "#{@parent.get_locator} #{trigger}" if @context == :section && !@parent.get_locator.nil?
1041
- first(trigger).click
1042
- end
1043
-
1044
1035
  def object_ref_message
1045
1036
  "object '#{get_name}' (#{get_locator})"
1046
1037
  end
@@ -1,6 +1,6 @@
1
1
  module WorldData
2
2
  def environs
3
- @environs ||= TestCentricity::EnvironData.new
3
+ @environs ||= TestCentricity::EnvironData
4
4
  end
5
5
 
6
6
  # instantiate and register all data objects specified in data_objects method
@@ -1,4 +1,4 @@
1
- require 'capybara/cucumber'
1
+ require 'capybara/rspec'
2
2
  require 'test/unit'
3
3
  require 'appium_lib'
4
4
 
@@ -35,16 +35,6 @@ require 'testcentricity_web/web_elements/range'
35
35
  require 'testcentricity_web/web_elements/media'
36
36
  require 'testcentricity_web/web_elements/audio'
37
37
  require 'testcentricity_web/web_elements/video'
38
- require 'testcentricity_web/web_elements/cell_element'
39
- require 'testcentricity_web/web_elements/cell_button'
40
- require 'testcentricity_web/web_elements/cell_checkbox'
41
- require 'testcentricity_web/web_elements/cell_radio'
42
- require 'testcentricity_web/web_elements/cell_image'
43
- require 'testcentricity_web/web_elements/list_element'
44
- require 'testcentricity_web/web_elements/list_button'
45
- require 'testcentricity_web/web_elements/list_checkbox'
46
- require 'testcentricity_web/web_elements/list_radio'
47
- require 'testcentricity_web/web_elements/siebel_open_ui_helper'
48
38
 
49
39
 
50
40
  module TestCentricity