@@ -11,48 +11,85 @@ def setup
11
11
@@driver ||= @@core . start_driver
12
12
end
13
13
14
+ def teardown
15
+ save_reports ( @@driver )
16
+ end
17
+
14
18
def test_image_element
15
19
skip 'Requres `npm install -g appium opencv4nodejs`' unless `npm list -g opencv4nodejs` . include? 'opencv4nodejs'
16
20
17
- @@driver . update_settings ( { fixImageFindScreenshotDims : false ,
18
- fixImageTemplateSize : true ,
19
- autoUpdateImageElementPosition : true } )
20
-
21
- e = @@driver . find_element_by_image AppiumLibCoreTest . path_of ( 'test/functional/data/test_button_image_ios.png' )
22
-
23
- assert e . inspect
24
- assert e . hash
25
- assert e . ref =~ /\A appium-image-element-[a-z0-9\- ]+/
26
- assert e . location . x
27
- assert e . location . y
28
- assert e . size . width
29
- assert e . size . height
30
- assert e . rect . x
31
- assert e . rect . y
32
- assert e . rect . width
33
- assert e . rect . height
34
- assert e . displayed?
21
+ @@driver . update_settings ( { fixScaleTemplateImage : true } )
22
+
23
+ el = @@driver . find_element :accessibility_id , 'Buttons'
24
+ @@driver . save_element_screenshot el , 'test/functional/data/test_ios_button.png'
25
+
26
+ image_element = @@driver . find_element_by_image AppiumLibCoreTest . path_of ( 'test/functional/data/test_ios_button.png' )
27
+
28
+ assert image_element . inspect
29
+ assert image_element . hash
30
+ assert image_element . ref =~ /\A appium-image-element-[a-z0-9\- ]+/
31
+
32
+ el_location = el . location
33
+ image_location = image_element . location
34
+ assert_in_delta el_location . x , image_location . x , 1
35
+ assert_in_delta el_location . y , image_location . y , 1
36
+
37
+ el_size = el . size
38
+ image_size = image_element . size
39
+ assert_in_delta el_size . width , image_size . width , 1
40
+ assert_in_delta el_size . height , image_size . height , 1
41
+
42
+ el_rect = el . rect
43
+ image_rect = image_element . rect
44
+ assert_in_delta el_rect . x , image_rect . x , 1
45
+ assert_in_delta el_rect . y , image_rect . y , 1
46
+ assert_in_delta el_rect . width , image_rect . width , 1
47
+ assert_in_delta el_rect . height , image_rect . height , 1
48
+
49
+ assert_equal el . displayed? , image_element . displayed?
50
+ image_element . click
51
+
52
+ assert @@driver . find_element :accessibility_id , 'Gray'
53
+ @@driver . back
35
54
end
36
55
37
56
def test_image_elements
38
57
skip 'Requres `npm install -g appium opencv4nodejs`' unless `npm list -g opencv4nodejs` . include? 'opencv4nodejs'
39
58
40
- @@driver . update_settings ( { fixImageTemplateSize : true ,
41
- autoUpdateImageElementPosition : true } )
59
+ @@driver . update_settings ( { fixScaleTemplateImage : true } )
42
60
43
- e = @@driver . find_elements_by_image AppiumLibCoreTest . path_of ( 'test/functional/data/test_arrow_multiple_ios.png' )
61
+ el = @@driver . find_element :accessibility_id , 'Buttons'
62
+ @@driver . save_element_screenshot el , 'test/functional/data/test_ios_button.png'
44
63
45
- assert e [ 0 ] . inspect
46
- assert e [ 0 ] . hash
47
- assert e [ 0 ] . ref =~ /\A appium-image-element-[a-z0-9\- ]+/
48
- assert e [ 0 ] . location
49
- assert e [ 0 ] . size
50
- assert e [ 0 ] . rect
51
- assert e [ 0 ] . displayed?
52
- end
64
+ image_elements = @@driver . find_elements_by_image AppiumLibCoreTest . path_of ( 'test/functional/data/test_ios_button.png' )
65
+ image_element = image_elements [ 0 ]
53
66
54
- def teardown
55
- save_reports ( @@driver )
67
+ assert image_element . inspect
68
+ assert image_element . hash
69
+ assert image_element . ref =~ /\A appium-image-element-[a-z0-9\- ]+/
70
+
71
+ el_location = el . location
72
+ image_location = image_element . location
73
+ assert_in_delta el_location . x , image_location . x , 1
74
+ assert_in_delta el_location . y , image_location . y , 1
75
+
76
+ el_size = el . size
77
+ image_size = image_element . size
78
+ assert_in_delta el_size . width , image_size . width , 1
79
+ assert_in_delta el_size . height , image_size . height , 1
80
+
81
+ el_rect = el . rect
82
+ image_rect = image_element . rect
83
+ assert_in_delta el_rect . x , image_rect . x , 1
84
+ assert_in_delta el_rect . y , image_rect . y , 1
85
+ assert_in_delta el_rect . width , image_rect . width , 1
86
+ assert_in_delta el_rect . height , image_rect . height , 1
87
+
88
+ assert_equal el . displayed? , image_element . displayed?
89
+ image_element . click
90
+
91
+ assert @@driver . find_element :accessibility_id , 'Gray'
92
+ @@driver . back
56
93
end
57
94
58
95
def test_window_size
0 commit comments