itms_automation 2.1 → 2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/itms_automation/auto_util.rb +11 -6
- data/lib/itms_automation/version.rb +1 -1
- data/lib/itms_automation/web_steps_helper.rb +236 -4
- data/project/features/TestSuite/WebGUI.feature +1 -2
- data/project/features/step_definitions/lib_steps/steps_definition.rb +0 -43
- data/project/features/step_definitions/repositories/project_object.yml +2 -26
- data/project/features/support/env.rb +1 -0
- data/project/features/support/hooks.rb +14 -16
- metadata +19 -20
- data/project/Gemfile.lock +0 -92
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b1066a38baafacc29d30b7f1c0f615b617f9f842a99fecc323457eec81309361
|
4
|
+
data.tar.gz: a8744479fc22f8b4e8063b90747857d807a8709b9a3c38e1116d9a18607a7d6f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6e42a121f66d331393f8a3a62f9d6025b31a6613062120a53006b0bfbe1fd5f95e7acd6c364b36f6825cf8fab09b16ee9e256d1fdd7e1c1db715c65fc0cd1362
|
7
|
+
data.tar.gz: 7f3760b31ab2dda8f192e2f5f56f69b79b2f80dffc12dc99946257989021f50d4b7f7025d45169735007b5e5ef416a2684c9ada47659defb4fa4e22a7a34ac73
|
@@ -13,6 +13,10 @@ def set_var(var_name, var_value)
|
|
13
13
|
eval strEval, $dyn_vars
|
14
14
|
end
|
15
15
|
|
16
|
+
def get_var(var_name)
|
17
|
+
$dyn_vars.local_variable_get(var_name)
|
18
|
+
end
|
19
|
+
|
16
20
|
def check_dynamic_value(value)
|
17
21
|
if !value.is_a? Fixnum
|
18
22
|
if value.include? "params="
|
@@ -130,8 +134,9 @@ def print_variable(variable)
|
|
130
134
|
end
|
131
135
|
|
132
136
|
def duration(start)
|
133
|
-
current = Time.now
|
134
|
-
|
137
|
+
current = Time.now.to_f
|
138
|
+
convert_time = Time.at(current - start.to_f).utc.strftime('%Mm%s.%Ls')
|
139
|
+
return convert_time
|
135
140
|
end
|
136
141
|
|
137
142
|
def print_log(status, start, method, *args)
|
@@ -147,7 +152,7 @@ def print_log(status, start, method, *args)
|
|
147
152
|
end
|
148
153
|
end
|
149
154
|
|
150
|
-
puts "#{icon}
|
155
|
+
puts "#{icon} Step: #{method}(#{str}) (#{duration(start)})"
|
151
156
|
end
|
152
157
|
|
153
158
|
def get_object_value(str_obj)
|
@@ -387,7 +392,7 @@ def get_objects_by_Class(strClass)
|
|
387
392
|
begin
|
388
393
|
foundElements = page.all("*[@class='#{strClass}']")
|
389
394
|
rescue StandardError => e
|
390
|
-
|
395
|
+
raise "Error: #{e.message}"
|
391
396
|
end
|
392
397
|
|
393
398
|
return foundElements
|
@@ -398,7 +403,7 @@ def get_objects_by_Name(strName)
|
|
398
403
|
begin
|
399
404
|
foundElements = page.all("*[@name='#{strName}']")
|
400
405
|
rescue StandardError => e
|
401
|
-
|
406
|
+
raise "Error: #{e.message}"
|
402
407
|
end
|
403
408
|
|
404
409
|
return foundElements
|
@@ -409,7 +414,7 @@ def get_objects_by_Tagname(strTagname)
|
|
409
414
|
begin
|
410
415
|
foundElements = page.all("#{strTagname}")
|
411
416
|
rescue StandardError => e
|
412
|
-
|
417
|
+
raise "Error: #{e.message}"
|
413
418
|
end
|
414
419
|
|
415
420
|
return foundElements
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require "net/https"
|
2
2
|
require "rspec"
|
3
|
+
require "open-uri"
|
3
4
|
|
4
5
|
def execute_openbrowser(url_site)
|
5
6
|
start = Time.now
|
@@ -386,7 +387,7 @@ def get_element_text(element)
|
|
386
387
|
if foundElement != nil
|
387
388
|
begin
|
388
389
|
result = foundElement.text()
|
389
|
-
print_log("passed", start, __method__, element
|
390
|
+
print_log("passed", start, __method__, element)
|
390
391
|
puts "Text of #{element}: #{result}"
|
391
392
|
rescue StandardError => e
|
392
393
|
print_log("failed", start, __method__, element)
|
@@ -398,16 +399,16 @@ def get_element_text(element)
|
|
398
399
|
end
|
399
400
|
end
|
400
401
|
|
401
|
-
def get_element_attribute(element
|
402
|
+
def get_element_attribute(element)
|
402
403
|
start = Time.now
|
403
404
|
foundElement = find_object(element)
|
404
405
|
if foundElement != nil
|
405
406
|
begin
|
406
407
|
result = foundElement.value()
|
407
|
-
print_log("passed", start, __method__, element
|
408
|
+
print_log("passed", start, __method__, element)
|
408
409
|
puts "Attribute of #{element}: #{result}"
|
409
410
|
rescue StandardError => e
|
410
|
-
print_log("failed", start, __method__, element
|
411
|
+
print_log("failed", start, __method__, element)
|
411
412
|
raise "Error: #{e.message}"
|
412
413
|
end
|
413
414
|
else
|
@@ -604,3 +605,234 @@ def movemouseandclick(var, element)
|
|
604
605
|
Selenium::WebDriver::Support::Select.new(page.driver.browser.find_element(:id, "#{var}")).select_by(:text, "#{element}")
|
605
606
|
page.driver.browser.find_element(:id, "#{var}").click
|
606
607
|
end
|
608
|
+
|
609
|
+
def upload_file(element, file_url)
|
610
|
+
start = Time.now
|
611
|
+
found_element = find_object(element)
|
612
|
+
if found_element != nil
|
613
|
+
begin
|
614
|
+
file_name = File.basename(file_url)
|
615
|
+
FileUtils.mkdir_p("downloads") unless File.exist?("downloads")
|
616
|
+
File.open("downloads/#{file_name}", "wb") do |file|
|
617
|
+
file.write open(file_url).read
|
618
|
+
end
|
619
|
+
attach_file(found_element, "downloads/#{file_name}")
|
620
|
+
print_log("passed", start, __method__, element, file_url)
|
621
|
+
rescue StandardError => e
|
622
|
+
print_log("failed", start, __method__, element, file_url)
|
623
|
+
raise "Error: #{e.message}"
|
624
|
+
end
|
625
|
+
else
|
626
|
+
print_log("failed", start, __method__, element, file_url)
|
627
|
+
raise "Error: Not found object: #{element}"
|
628
|
+
end
|
629
|
+
end
|
630
|
+
|
631
|
+
def store_variable(var_name, var_value)
|
632
|
+
start = Time.now
|
633
|
+
begin
|
634
|
+
text = "'" + var_value + "'"
|
635
|
+
set_var(var_name, text)
|
636
|
+
print_log("passed", start, __method__, var_name, var_value)
|
637
|
+
rescue StandardError => e
|
638
|
+
print_log("failed", start, __method__, var_name, var_value)
|
639
|
+
raise "Error: #{e.message}"
|
640
|
+
end
|
641
|
+
end
|
642
|
+
|
643
|
+
def store_text_element(element, var_name)
|
644
|
+
start = Time.now
|
645
|
+
found_element = find_object(element)
|
646
|
+
if found_element != nil
|
647
|
+
begin
|
648
|
+
var_value = "'" + found_element.text() + "'"
|
649
|
+
set_var(var_name, var_value)
|
650
|
+
print_log("passed", start, __method__, element, var_name)
|
651
|
+
rescue StandardError => e
|
652
|
+
print_log("failed", start, __method__, element, var_name)
|
653
|
+
raise "Error: #{e.message}"
|
654
|
+
end
|
655
|
+
else
|
656
|
+
print_log("failed", start, __method__, element, var_name)
|
657
|
+
raise "Error: Not found object: #{element}"
|
658
|
+
end
|
659
|
+
end
|
660
|
+
|
661
|
+
def store_title_current_page(var_name)
|
662
|
+
start = Time.now
|
663
|
+
begin
|
664
|
+
var_value = "'" + page.title + "'"
|
665
|
+
set_var(var_name, var_value)
|
666
|
+
print_log("passed", start, __method__, var_name)
|
667
|
+
rescue StandardError => e
|
668
|
+
print_log("failed", start, __method__, var_name)
|
669
|
+
raise "Error: #{e.message}"
|
670
|
+
end
|
671
|
+
end
|
672
|
+
|
673
|
+
def store_element_value(element, var_name)
|
674
|
+
start = Time.now
|
675
|
+
found_element = find_object(element)
|
676
|
+
if found_element != nil
|
677
|
+
begin
|
678
|
+
var_value = "'" + found_element.value() + "'"
|
679
|
+
set_var(var_name, var_value)
|
680
|
+
print_log("passed", start, __method__, element, var_name)
|
681
|
+
rescue StandardError => e
|
682
|
+
print_log("failed", start, __method__, element, var_name)
|
683
|
+
raise "Error: #{e.message}"
|
684
|
+
end
|
685
|
+
else
|
686
|
+
print_log("failed", start, __method__, element, var_name)
|
687
|
+
raise "Error: Not found object: #{element}"
|
688
|
+
end
|
689
|
+
end
|
690
|
+
|
691
|
+
def store_element_attribute_value(element, attribute, var_name)
|
692
|
+
start = Time.now
|
693
|
+
found_element = find_object(element)
|
694
|
+
if found_element != nil
|
695
|
+
begin
|
696
|
+
var_value = "'" + found_element[attribute] + "'"
|
697
|
+
set_var(var_name, var_value)
|
698
|
+
print_log("passed", start, __method__, element, var_name)
|
699
|
+
rescue StandardError => e
|
700
|
+
print_log("failed", start, __method__, element, var_name)
|
701
|
+
raise "Error: #{e.message}"
|
702
|
+
end
|
703
|
+
else
|
704
|
+
print_log("failed", start, __method__, element, var_name)
|
705
|
+
raise "Error: Not found object: #{element}"
|
706
|
+
end
|
707
|
+
end
|
708
|
+
|
709
|
+
def store_evaluate_script(script, var_name)
|
710
|
+
start = Time.now
|
711
|
+
begin
|
712
|
+
result = page.evaluate_script(<<~JS, script)
|
713
|
+
(function(scr){
|
714
|
+
return eval(scr);
|
715
|
+
})(arguments[0])
|
716
|
+
JS
|
717
|
+
var_value = "'" + result.to_s + "'"
|
718
|
+
set_var(var_name, var_value)
|
719
|
+
print_log("passed", start, __method__, script, var_name)
|
720
|
+
rescue StandardError => e
|
721
|
+
print_log("failed", start, __method__, script, var_name)
|
722
|
+
raise "Error: #{e.message}"
|
723
|
+
end
|
724
|
+
end
|
725
|
+
|
726
|
+
def check_checkbox_radio(element)
|
727
|
+
start = Time.now
|
728
|
+
found_element = find_object(element)
|
729
|
+
if found_element != nil
|
730
|
+
begin
|
731
|
+
found_element.check(allow_label_click: true)
|
732
|
+
print_log("passed", start, __method__, element)
|
733
|
+
rescue StandardError => e
|
734
|
+
print_log("failed", start, __method__, element)
|
735
|
+
raise "Error: #{e.message}"
|
736
|
+
end
|
737
|
+
else
|
738
|
+
print_log("failed", start, __method__, element)
|
739
|
+
raise "Error: Not found object: #{element}"
|
740
|
+
end
|
741
|
+
end
|
742
|
+
|
743
|
+
def uncheck_checkbox_radio(element)
|
744
|
+
start = Time.now
|
745
|
+
found_element = find_object(element)
|
746
|
+
if found_element != nil
|
747
|
+
begin
|
748
|
+
found_element.uncheck(allow_label_click: true)
|
749
|
+
print_log("passed", start, __method__, element)
|
750
|
+
rescue StandardError => e
|
751
|
+
print_log("failed", start, __method__, element)
|
752
|
+
raise "Error: #{e.message}"
|
753
|
+
end
|
754
|
+
else
|
755
|
+
print_log("failed", start, __method__, element)
|
756
|
+
raise "Error: Not found object: #{element}"
|
757
|
+
end
|
758
|
+
end
|
759
|
+
|
760
|
+
def verify_checkbox_radio_checked(element)
|
761
|
+
start = Time.now
|
762
|
+
found_element = find_object(element)
|
763
|
+
if found_element != nil
|
764
|
+
begin
|
765
|
+
if found_element.checked?
|
766
|
+
print_log("passed", start, __method__, element)
|
767
|
+
else
|
768
|
+
print_log("failed", start, __method__, element)
|
769
|
+
end
|
770
|
+
rescue StandardError => e
|
771
|
+
print_log("failed", start, __method__, element)
|
772
|
+
raise "Error: #{e.message}"
|
773
|
+
end
|
774
|
+
else
|
775
|
+
print_log("failed", start, __method__, element)
|
776
|
+
raise "Error: Not found object: #{element}"
|
777
|
+
end
|
778
|
+
end
|
779
|
+
|
780
|
+
def verify_checkbox_radio_not_checked(element)
|
781
|
+
start = Time.now
|
782
|
+
found_element = find_object(element)
|
783
|
+
if found_element != nil
|
784
|
+
begin
|
785
|
+
if found_element.checked?
|
786
|
+
print_log("failed", start, __method__, element)
|
787
|
+
else
|
788
|
+
print_log("passed", start, __method__, element)
|
789
|
+
end
|
790
|
+
rescue StandardError => e
|
791
|
+
print_log("failed", start, __method__, element)
|
792
|
+
raise "Error: #{e.message}"
|
793
|
+
end
|
794
|
+
else
|
795
|
+
print_log("failed", start, __method__, element)
|
796
|
+
raise "Error: Not found object: #{element}"
|
797
|
+
end
|
798
|
+
end
|
799
|
+
|
800
|
+
def verify_input_editable(element)
|
801
|
+
start = Time.now
|
802
|
+
found_element = find_object(element)
|
803
|
+
if found_element != nil
|
804
|
+
begin
|
805
|
+
if found_element.disabled?
|
806
|
+
print_log("passed", start, __method__, element)
|
807
|
+
else
|
808
|
+
print_log("failed", start, __method__, element)
|
809
|
+
end
|
810
|
+
rescue StandardError => e
|
811
|
+
print_log("failed", start, __method__, element)
|
812
|
+
raise "Error: #{e.message}"
|
813
|
+
end
|
814
|
+
else
|
815
|
+
print_log("failed", start, __method__, element)
|
816
|
+
raise "Error: Not found object: #{element}"
|
817
|
+
end
|
818
|
+
end
|
819
|
+
|
820
|
+
def verify_input_not_editable(element)
|
821
|
+
start = Time.now
|
822
|
+
found_element = find_object(element)
|
823
|
+
if found_element != nil
|
824
|
+
begin
|
825
|
+
if found_element.disabled?
|
826
|
+
print_log("failed", start, __method__, element)
|
827
|
+
else
|
828
|
+
print_log("passed", start, __method__, element)
|
829
|
+
end
|
830
|
+
rescue StandardError => e
|
831
|
+
print_log("failed", start, __method__, element)
|
832
|
+
raise "Error: #{e.message}"
|
833
|
+
end
|
834
|
+
else
|
835
|
+
print_log("failed", start, __method__, element)
|
836
|
+
raise "Error: Not found object: #{element}"
|
837
|
+
end
|
838
|
+
end
|
@@ -1,46 +1,3 @@
|
|
1
1
|
And /I open the page "(.*)"/ do |url_site|
|
2
2
|
execute_openbrowser(url_site)
|
3
3
|
end
|
4
|
-
|
5
|
-
Given /^test select execute$/ do
|
6
|
-
|
7
|
-
execute_openbrowser("https://infodation.atlassian.net/plugins/servlet/ac/Infodation-tms/test-summary?project.key=IFDTMS&project.id=17400")
|
8
|
-
# execute_settext("username", "cuong")
|
9
|
-
# execute_click("okbutton")
|
10
|
-
switch_to_iframe("iframe1")
|
11
|
-
|
12
|
-
execute_click("verify")
|
13
|
-
sleep(5)
|
14
|
-
end
|
15
|
-
|
16
|
-
When /^Go to Test Cycle Sumary of iTMS project$/ do
|
17
|
-
execute_openbrowser("https://infodation.atlassian.net/plugins/servlet/ac/Infodation-tms/test-summary?project.key=IFDTMS&project.id=17400")
|
18
|
-
sleep(5)
|
19
|
-
switch_to_iframe("iframe1")
|
20
|
-
execute_click("itms_cyclesumarylink")
|
21
|
-
sleep(3)
|
22
|
-
custom_action
|
23
|
-
end
|
24
|
-
|
25
|
-
|
26
|
-
def custom_action()
|
27
|
-
begin
|
28
|
-
browser = Capybara.current_session.driver.browser
|
29
|
-
if browser.respond_to?(:clear_cookies)
|
30
|
-
# Rack::MockSession
|
31
|
-
browser.clear_cookies
|
32
|
-
print_log("passed", start, _method_)
|
33
|
-
elsif browser.respond_to?(:manage) and browser.manage.respond_to?(:delete_all_cookies)
|
34
|
-
# Selenium::WebDriver
|
35
|
-
browser.manage.delete_all_cookies
|
36
|
-
print_log("passed", start, _method_)
|
37
|
-
else
|
38
|
-
print_log("failed", start, _method_)
|
39
|
-
raise "Error: Don't know how to clear cookies. Weird driver?"
|
40
|
-
end
|
41
|
-
rescue Exception => e
|
42
|
-
print_log("failed", start, _method_)
|
43
|
-
raise "Error: #{e.message}"
|
44
|
-
end
|
45
|
-
|
46
|
-
end
|
@@ -1,26 +1,2 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
iframe: { xpath_selector: '//*[@class="ap-iframe-container iframe-init"]' }
|
4
|
-
iframe1: { xpath_selector: '//iframe[contains(@id,"Infodation-tms__test-summary_")]' }
|
5
|
-
verify: { xpath_selector: '//*[@id="aui-uid-1"]' }
|
6
|
-
firstname:
|
7
|
-
{
|
8
|
-
xpath_selector: '/html/body/div[2]/table/tbody/tr/td[2]/table/tbody/tr[4]/td/table/tbody/tr/td[2]/table/tbody/tr[5]/td/form/table/tbody/tr[2]/td[2]',
|
9
|
-
}
|
10
|
-
lastname:
|
11
|
-
{
|
12
|
-
xpath_selector: '/html/body/div[2]/table/tbody/tr/td[2]/table/tbody/tr[4]/td/table/tbody/tr/td[2]/table/tbody/tr[5]/td/form/table/tbody/tr[3]/td[2]/input',
|
13
|
-
}
|
14
|
-
selectcountry:
|
15
|
-
{
|
16
|
-
xpath_selector: '/html/body/div[2]/table/tbody/tr/td[2]/table/tbody/tr[4]/td/table/tbody/tr/td[2]/table/tbody/tr[5]/td/form/table/tbody/tr[11]/td[2]/select',
|
17
|
-
}
|
18
|
-
loginjira_continuebutton: {xpath_selector: "//button[@id=\"login-submit\"]/span/span/span"}
|
19
|
-
loginjira_password: {xpath_selector: "//input[@id=\"password\"]"}
|
20
|
-
loginjira_username: {xpath_selector: "//input[@id=\"username\"]"}
|
21
|
-
itms_cyclesumarylink: {xpath_selector: "//section[@id=\"content\"]//li[@class=\"menu-item\"]/a"}
|
22
|
-
itms_createnewtestcyclebutton: {xpath_selector: "//button[@id=\"itms-sidebar-addnew-button\"]"}
|
23
|
-
itms_createtestcycle_savebutton: {xpath_selector: "//button[@id=\"itms-dialog-confirm\"]"}
|
24
|
-
itms_createtestcyle_alertmessage: {xpath_selector: "//section[@id=\"ITMS-dialog-cycle\"]//strong"}
|
25
|
-
itms_clickheretocreatetestcycle: {xpath_selector: "//section[@class=\"aui-buttons\"]/button[3]/span"}
|
26
|
-
itms_iframe_testsumary: { xpath_selector: '//iframe[contains(@id,"Infodation-tms__test-summary_")]' }
|
1
|
+
signupbutton: {xpath_selector: '//li[@class="mm-listitem"]//a[@href="#"][contains(text(),"T")]'}
|
2
|
+
|
@@ -12,7 +12,6 @@ AfterConfiguration do
|
|
12
12
|
browser = Capybara.current_session.driver.browser
|
13
13
|
browser.manage.delete_all_cookies
|
14
14
|
end
|
15
|
-
|
16
15
|
end
|
17
16
|
|
18
17
|
def validate_params_exist
|
@@ -31,7 +30,7 @@ def getDriver
|
|
31
30
|
when "chrome"
|
32
31
|
@chrome_options = loadYAMLfile('config/chrome_options.yaml')
|
33
32
|
Capybara.register_driver :selenium do |app|
|
34
|
-
|
33
|
+
Capybara::Selenium::Driver.new(app, :url => ENV['SERVER_URL'],:desired_capabilities => Selenium::WebDriver::Remote::Capabilities.chrome(chromeOptions: @chrome_options))
|
35
34
|
end
|
36
35
|
Capybara.current_driver = :selenium
|
37
36
|
when "firefox"
|
@@ -52,26 +51,24 @@ def getDriver
|
|
52
51
|
Capybara::Selenium::Driver.new(app, :url => ENV['SERVER_URL'], :desired_capabilities => Selenium::WebDriver::Remote::Capabilities.internet_explorer(ieOptions: @ie_options))
|
53
52
|
end
|
54
53
|
Capybara.current_driver = :selenium
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
# when "firefox_headless"
|
62
|
-
# @firefox_headless_options = loadYAMLfile('config/firefox_options.yaml')
|
63
|
-
# Capybara.register_driver :selenium do |app|
|
64
|
-
# Capybara::Selenium::Driver.new(app, :desired_capabilities => Selenium::WebDriver::Remote::Capabilities.firefox(firefoxOptions: @firefox_headless_options))
|
65
|
-
# end
|
66
|
-
# Capybara.current_driver = :selenium_headless
|
54
|
+
when "chrome_headless"
|
55
|
+
@chrome_headless_options = loadYAMLfile('config/chrome_headless_options.yaml')
|
56
|
+
Capybara.register_driver :selenium do |app|
|
57
|
+
Capybara::Selenium::Driver.new(app, :url => ENV['SERVER_URL'], :desired_capabilities => Selenium::WebDriver::Remote::Capabilities.chrome(chromeOptions: @chrome_headless_options))
|
58
|
+
end
|
59
|
+
Capybara.current_driver = :selenium
|
67
60
|
when "remote"
|
68
61
|
@capabilities = loadYAMLfile('config/remote_options.yaml')
|
69
62
|
Capybara.register_driver :selenium do |app|
|
70
63
|
Capybara::Selenium::Driver.new(app, :url => ENV['SERVER_URL'], :desired_capabilities => @capabilities)
|
71
64
|
end
|
72
65
|
Capybara.current_driver = :selenium
|
73
|
-
|
74
|
-
raise "❌ ERROR: Unsupported browser: #{ENV['BROWSER']}. Available: chrome || firefox || safari || ie || remote"
|
66
|
+
else
|
67
|
+
raise "❌ ERROR: Unsupported browser: #{ENV['BROWSER']}. Available: chrome || chrome headless || firefox || safari || ie || remote"
|
68
|
+
end
|
69
|
+
unless ENV["SCREEN_RESOLUTION"].nil?
|
70
|
+
screen_resolution = ENV["SCREEN_RESOLUTION"].split("x")
|
71
|
+
Capybara.page.current_window.resize_to(screen_resolution[0], screen_resolution[1])
|
75
72
|
end
|
76
73
|
end
|
77
74
|
|
@@ -98,6 +95,7 @@ After do |scenario|
|
|
98
95
|
# end
|
99
96
|
# $browser_data = page.driver.browser.capabilities
|
100
97
|
# p "$browser_data:#{$browser_data.inspect}"
|
98
|
+
FileUtils.rm_rf(Dir.glob('downloads/*'))
|
101
99
|
end
|
102
100
|
|
103
101
|
at_exit do
|
metadata
CHANGED
@@ -1,35 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: itms_automation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '2.
|
4
|
+
version: '2.2'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anh Pham
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-04-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: selenium-webdriver
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 3.6.0
|
20
17
|
- - "~>"
|
21
18
|
- !ruby/object:Gem::Version
|
22
19
|
version: '3.6'
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 3.6.0
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
|
-
- - ">="
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: 3.6.0
|
30
27
|
- - "~>"
|
31
28
|
- !ruby/object:Gem::Version
|
32
29
|
version: '3.6'
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 3.6.0
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: cucumber
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -62,22 +62,22 @@ dependencies:
|
|
62
62
|
name: rspec
|
63
63
|
requirement: !ruby/object:Gem::Requirement
|
64
64
|
requirements:
|
65
|
-
- - ">="
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
version: 3.8.0
|
68
65
|
- - "~>"
|
69
66
|
- !ruby/object:Gem::Version
|
70
67
|
version: '3.8'
|
68
|
+
- - ">="
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: 3.8.0
|
71
71
|
type: :runtime
|
72
72
|
prerelease: false
|
73
73
|
version_requirements: !ruby/object:Gem::Requirement
|
74
74
|
requirements:
|
75
|
-
- - ">="
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: 3.8.0
|
78
75
|
- - "~>"
|
79
76
|
- !ruby/object:Gem::Version
|
80
77
|
version: '3.8'
|
78
|
+
- - ">="
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: 3.8.0
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
82
|
name: parallel_tests
|
83
83
|
requirement: !ruby/object:Gem::Requirement
|
@@ -102,20 +102,20 @@ dependencies:
|
|
102
102
|
name: report_builder
|
103
103
|
requirement: !ruby/object:Gem::Requirement
|
104
104
|
requirements:
|
105
|
-
- - "
|
105
|
+
- - "~>"
|
106
106
|
- !ruby/object:Gem::Version
|
107
107
|
version: '1.8'
|
108
|
-
- - "
|
108
|
+
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '1.8'
|
111
111
|
type: :runtime
|
112
112
|
prerelease: false
|
113
113
|
version_requirements: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- - "
|
115
|
+
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: '1.8'
|
118
|
-
- - "
|
118
|
+
- - ">="
|
119
119
|
- !ruby/object:Gem::Version
|
120
120
|
version: '1.8'
|
121
121
|
- !ruby/object:Gem::Dependency
|
@@ -155,7 +155,6 @@ files:
|
|
155
155
|
- lib/itms_automation/version.rb
|
156
156
|
- lib/itms_automation/web_steps_helper.rb
|
157
157
|
- project/Gemfile
|
158
|
-
- project/Gemfile.lock
|
159
158
|
- project/README.md
|
160
159
|
- project/Rakefile
|
161
160
|
- project/config/chrome_headless_options.yaml
|
@@ -190,7 +189,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
190
189
|
- !ruby/object:Gem::Version
|
191
190
|
version: '0'
|
192
191
|
requirements: []
|
193
|
-
rubygems_version: 3.
|
192
|
+
rubygems_version: 3.1.2
|
194
193
|
signing_key:
|
195
194
|
specification_version: 4
|
196
195
|
summary: SELENIUM WEBDRIVER WITH RUBY & CUCUMBER
|
data/project/Gemfile.lock
DELETED
@@ -1,92 +0,0 @@
|
|
1
|
-
GEM
|
2
|
-
remote: http://rubygems.org/
|
3
|
-
specs:
|
4
|
-
addressable (2.7.0)
|
5
|
-
public_suffix (>= 2.0.2, < 5.0)
|
6
|
-
backports (3.15.0)
|
7
|
-
builder (3.2.3)
|
8
|
-
capybara (3.29.0)
|
9
|
-
addressable
|
10
|
-
mini_mime (>= 0.1.3)
|
11
|
-
nokogiri (~> 1.8)
|
12
|
-
rack (>= 1.6.0)
|
13
|
-
rack-test (>= 0.6.3)
|
14
|
-
regexp_parser (~> 1.5)
|
15
|
-
xpath (~> 3.2)
|
16
|
-
childprocess (3.0.0)
|
17
|
-
colorize (0.8.1)
|
18
|
-
cucumber (3.1.2)
|
19
|
-
builder (>= 2.1.2)
|
20
|
-
cucumber-core (~> 3.2.0)
|
21
|
-
cucumber-expressions (~> 6.0.1)
|
22
|
-
cucumber-wire (~> 0.0.1)
|
23
|
-
diff-lcs (~> 1.3)
|
24
|
-
gherkin (~> 5.1.0)
|
25
|
-
multi_json (>= 1.7.5, < 2.0)
|
26
|
-
multi_test (>= 0.1.2)
|
27
|
-
cucumber-core (3.2.1)
|
28
|
-
backports (>= 3.8.0)
|
29
|
-
cucumber-tag_expressions (~> 1.1.0)
|
30
|
-
gherkin (~> 5.0)
|
31
|
-
cucumber-expressions (6.0.1)
|
32
|
-
cucumber-tag_expressions (1.1.1)
|
33
|
-
cucumber-wire (0.0.1)
|
34
|
-
cucumber_priority (0.3.2)
|
35
|
-
cucumber
|
36
|
-
diff-lcs (1.3)
|
37
|
-
gherkin (5.1.0)
|
38
|
-
itms_automation (1.5)
|
39
|
-
capybara (~> 3.29.0)
|
40
|
-
colorize (~> 0.8.1)
|
41
|
-
cucumber (~> 3.1)
|
42
|
-
cucumber_priority (~> 0.3.2)
|
43
|
-
parallel_tests (~> 2.7, >= 2.7.1)
|
44
|
-
report_builder (~> 1.8, >= 1.8)
|
45
|
-
rspec (~> 3.8, >= 3.8.0)
|
46
|
-
selenium-webdriver (~> 3.6, >= 3.6.0)
|
47
|
-
json (2.3.0)
|
48
|
-
mini_mime (1.0.2)
|
49
|
-
mini_portile2 (2.4.0)
|
50
|
-
multi_json (1.14.0)
|
51
|
-
multi_test (0.1.2)
|
52
|
-
nokogiri (1.10.7)
|
53
|
-
mini_portile2 (~> 2.4.0)
|
54
|
-
parallel (1.19.1)
|
55
|
-
parallel_tests (2.29.2)
|
56
|
-
parallel
|
57
|
-
public_suffix (4.0.3)
|
58
|
-
rack (2.0.7)
|
59
|
-
rack-test (1.1.0)
|
60
|
-
rack (>= 1.0, < 3)
|
61
|
-
regexp_parser (1.6.0)
|
62
|
-
report_builder (1.8)
|
63
|
-
json (>= 1.8.1)
|
64
|
-
rspec (3.9.0)
|
65
|
-
rspec-core (~> 3.9.0)
|
66
|
-
rspec-expectations (~> 3.9.0)
|
67
|
-
rspec-mocks (~> 3.9.0)
|
68
|
-
rspec-core (3.9.1)
|
69
|
-
rspec-support (~> 3.9.1)
|
70
|
-
rspec-expectations (3.9.0)
|
71
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
72
|
-
rspec-support (~> 3.9.0)
|
73
|
-
rspec-mocks (3.9.1)
|
74
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
75
|
-
rspec-support (~> 3.9.0)
|
76
|
-
rspec-support (3.9.2)
|
77
|
-
rubyzip (2.0.0)
|
78
|
-
selenium-webdriver (3.142.6)
|
79
|
-
childprocess (>= 0.5, < 4.0)
|
80
|
-
rubyzip (>= 1.2.2)
|
81
|
-
xpath (3.2.0)
|
82
|
-
nokogiri (~> 1.8)
|
83
|
-
|
84
|
-
PLATFORMS
|
85
|
-
ruby
|
86
|
-
|
87
|
-
DEPENDENCIES
|
88
|
-
itms_automation
|
89
|
-
report_builder
|
90
|
-
|
91
|
-
BUNDLED WITH
|
92
|
-
2.0.2
|