mangoautomation 1.0.40__py3-none-any.whl → 1.0.42__py3-none-any.whl
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.
Potentially problematic release.
This version of mangoautomation might be problematic. Click here for more details.
- mangoautomation/uidrive/android/_application.py +6 -6
- mangoautomation/uidrive/android/_assertion.py +9 -9
- mangoautomation/uidrive/android/_equipment.py +26 -26
- mangoautomation/uidrive/android/_page.py +19 -19
- {mangoautomation-1.0.40.dist-info → mangoautomation-1.0.42.dist-info}/METADATA +2 -2
- {mangoautomation-1.0.40.dist-info → mangoautomation-1.0.42.dist-info}/RECORD +9 -9
- {mangoautomation-1.0.40.dist-info → mangoautomation-1.0.42.dist-info}/LICENSE +0 -0
- {mangoautomation-1.0.40.dist-info → mangoautomation-1.0.42.dist-info}/WHEEL +0 -0
- {mangoautomation-1.0.40.dist-info → mangoautomation-1.0.42.dist-info}/top_level.txt +0 -0
|
@@ -21,8 +21,8 @@ class AndroidApplication(metaclass=Meta):
|
|
|
21
21
|
def is_app_installed(self, package_name: str) -> bool:
|
|
22
22
|
return any(package_name in str(i) for i in self.base_data.android.shell("pm list packages"))
|
|
23
23
|
|
|
24
|
-
@sync_method_callback('android', '应用操作',
|
|
25
|
-
|
|
24
|
+
@sync_method_callback('android', '应用操作', 0,
|
|
25
|
+
[MethodModel(f='package_name', p='请输入应用名称', d=True)])
|
|
26
26
|
def a_start_app(self, package_name: str):
|
|
27
27
|
"""启动应用"""
|
|
28
28
|
if not package_name:
|
|
@@ -32,7 +32,7 @@ class AndroidApplication(metaclass=Meta):
|
|
|
32
32
|
self.base_data.android.app_start(package_name)
|
|
33
33
|
time.sleep(4)
|
|
34
34
|
|
|
35
|
-
@sync_method_callback('android', '应用操作', [
|
|
35
|
+
@sync_method_callback('android', '应用操作', 1,[
|
|
36
36
|
MethodModel(f='package_name', p='请输入应用名称', d=True)])
|
|
37
37
|
def a_close_app(self, package_name: str):
|
|
38
38
|
"""关闭应用"""
|
|
@@ -43,7 +43,7 @@ class AndroidApplication(metaclass=Meta):
|
|
|
43
43
|
|
|
44
44
|
self.base_data.android.app_stop(package_name)
|
|
45
45
|
|
|
46
|
-
@sync_method_callback('android', '应用操作', [
|
|
46
|
+
@sync_method_callback('android', '应用操作', 2,[
|
|
47
47
|
MethodModel(f='package_name', p='请输入应用名称', d=True)])
|
|
48
48
|
def a_clear_app(self, package_name: str):
|
|
49
49
|
"""清除app数据"""
|
|
@@ -54,12 +54,12 @@ class AndroidApplication(metaclass=Meta):
|
|
|
54
54
|
|
|
55
55
|
self.base_data.android.app_clear(package_name)
|
|
56
56
|
|
|
57
|
-
@sync_method_callback('android', '应用操作', )
|
|
57
|
+
@sync_method_callback('android', '应用操作',3 )
|
|
58
58
|
def a_app_stop_all(self):
|
|
59
59
|
"""停止所有app"""
|
|
60
60
|
self.base_data.android.app_stop_all()
|
|
61
61
|
|
|
62
|
-
@sync_method_callback('android', '应用操作', [
|
|
62
|
+
@sync_method_callback('android', '应用操作',4, [
|
|
63
63
|
MethodModel(f='package_name', p='请输入应用名称列表', d=True)])
|
|
64
64
|
def a_app_stop_appoint(self, package_name_list: list):
|
|
65
65
|
"""停止除指定app外所有app"""
|
|
@@ -16,20 +16,20 @@ class AndroidAssertion(metaclass=Meta):
|
|
|
16
16
|
def __init__(self, base_data: BaseData):
|
|
17
17
|
self.base_data = base_data
|
|
18
18
|
|
|
19
|
-
@sync_method_callback('ass_android', '元素断言', [
|
|
19
|
+
@sync_method_callback('ass_android', '元素断言', 1,[
|
|
20
20
|
MethodModel(f='actual')])
|
|
21
21
|
def a_assert_ele_exists(self, actual: UiObject):
|
|
22
22
|
"""元素存在"""
|
|
23
23
|
assert actual.count
|
|
24
24
|
|
|
25
|
-
@sync_method_callback('ass_android', '元素断言', [
|
|
25
|
+
@sync_method_callback('ass_android', '元素断言', 2,[
|
|
26
26
|
MethodModel(f='actual'),
|
|
27
27
|
MethodModel(f='expect', p='请输入预期内容', d=True)])
|
|
28
28
|
def a_assert_ele_count(self, actual: UiObject, expect):
|
|
29
29
|
"""元素计数"""
|
|
30
30
|
assert int(actual.count) == int(expect)
|
|
31
31
|
|
|
32
|
-
@sync_method_callback('ass_android', '元素断言', [
|
|
32
|
+
@sync_method_callback('ass_android', '元素断言', 3,[
|
|
33
33
|
MethodModel(f='actual'),
|
|
34
34
|
MethodModel(f='expect', p='请输入预期文本', d=True)])
|
|
35
35
|
def a_assert_ele_text(self, actual: UiObject, expect: str):
|
|
@@ -37,35 +37,35 @@ class AndroidAssertion(metaclass=Meta):
|
|
|
37
37
|
assert actual.get_text() == expect, \
|
|
38
38
|
f"实际='{actual.get_text()}', 预期='{expect}'"
|
|
39
39
|
|
|
40
|
-
@sync_method_callback('ass_android', '元素断言', [
|
|
40
|
+
@sync_method_callback('ass_android', '元素断言', 4,[
|
|
41
41
|
MethodModel(f='actual')])
|
|
42
42
|
def a_assert_ele_clickable_true(self, actual: UiObject):
|
|
43
43
|
"""元素可点击"""
|
|
44
44
|
assert actual.info['clickable'], \
|
|
45
45
|
f"实际={actual.info['clickable']}, 预期=可点击"
|
|
46
46
|
|
|
47
|
-
@sync_method_callback('ass_android', '元素断言', [
|
|
47
|
+
@sync_method_callback('ass_android', '元素断言', 5,[
|
|
48
48
|
MethodModel(f='actual')])
|
|
49
49
|
def a_assert_ele_clickable_false(self, actual: UiObject):
|
|
50
50
|
"""元素不可点击"""
|
|
51
51
|
assert not actual.info['clickable'], \
|
|
52
52
|
f"实际={actual.info['clickable']}, 预期=元素不可点击"
|
|
53
53
|
|
|
54
|
-
@sync_method_callback('ass_android', '元素断言', [
|
|
54
|
+
@sync_method_callback('ass_android', '元素断言', 6,[
|
|
55
55
|
MethodModel(f='actual')])
|
|
56
56
|
def a_assert_ele_visible_true(self, actual: UiObject):
|
|
57
57
|
"""元素可见"""
|
|
58
58
|
assert actual.exists and actual.info['visible'], \
|
|
59
59
|
f"实际={actual.info['visible']}, 预期=元素可见"
|
|
60
60
|
|
|
61
|
-
@sync_method_callback('ass_android', '元素断言', [
|
|
61
|
+
@sync_method_callback('ass_android', '元素断言', 7,[
|
|
62
62
|
MethodModel(f='actual')])
|
|
63
63
|
def a_assert_ele_visible_false(self, actual: UiObject):
|
|
64
64
|
"""元素不可见"""
|
|
65
65
|
assert actual.exists and not actual.info['visible'], \
|
|
66
66
|
f"实际={actual.info['visible']}, 预期=元素不可见"
|
|
67
67
|
|
|
68
|
-
@sync_method_callback('ass_android', '元素断言', [
|
|
68
|
+
@sync_method_callback('ass_android', '元素断言', 8,[
|
|
69
69
|
MethodModel(f='expect', p='请输入弹窗标题文本', d=False)])
|
|
70
70
|
def a_assert_dialog_exists(self, expect: str):
|
|
71
71
|
"""弹窗存在"""
|
|
@@ -73,7 +73,7 @@ class AndroidAssertion(metaclass=Meta):
|
|
|
73
73
|
className="android.app.AlertDialog")
|
|
74
74
|
assert dialog.exists, "未找到预期弹窗"
|
|
75
75
|
|
|
76
|
-
@sync_method_callback('ass_android', '元素断言', [
|
|
76
|
+
@sync_method_callback('ass_android', '元素断言', 9,[
|
|
77
77
|
MethodModel(f='actual'),
|
|
78
78
|
MethodModel(f='expect', p='请输入断言目标文本', d=True)])
|
|
79
79
|
def a_assert_ele_in_list(self, actual: UiObject, expect: str):
|
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
# @Author : 毛鹏
|
|
5
5
|
from time import sleep
|
|
6
6
|
|
|
7
|
-
from ...tools import Meta
|
|
8
|
-
from ...uidrive._base_data import BaseData
|
|
9
7
|
from mangotools.decorator import sync_method_callback
|
|
10
8
|
from mangotools.models import MethodModel
|
|
9
|
+
from ...tools import Meta
|
|
10
|
+
from ...uidrive._base_data import BaseData
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
class AndroidEquipment(metaclass=Meta):
|
|
@@ -22,129 +22,129 @@ class AndroidEquipment(metaclass=Meta):
|
|
|
22
22
|
"""强制等待"""
|
|
23
23
|
sleep(time_)
|
|
24
24
|
|
|
25
|
-
@sync_method_callback('android', '设备操作', )
|
|
25
|
+
@sync_method_callback('android', '设备操作', 2)
|
|
26
26
|
def a_screen_on(self):
|
|
27
27
|
"""打开屏幕"""
|
|
28
28
|
self.base_data.android.screen_on()
|
|
29
29
|
self.a_sleep(1)
|
|
30
30
|
|
|
31
|
-
@sync_method_callback('android', '设备操作', )
|
|
31
|
+
@sync_method_callback('android', '设备操作', 3)
|
|
32
32
|
def a_screen_off(self):
|
|
33
33
|
"""关闭屏幕"""
|
|
34
34
|
self.base_data.android.screen_off()
|
|
35
35
|
self.a_sleep(1)
|
|
36
36
|
|
|
37
|
-
@sync_method_callback('android', '设备操作', )
|
|
37
|
+
@sync_method_callback('android', '设备操作', 4)
|
|
38
38
|
def a_swipe_left(self):
|
|
39
39
|
"""获取屏幕开关状态"""
|
|
40
40
|
self.base_data.android.info.get('screenOn')
|
|
41
41
|
|
|
42
|
-
@sync_method_callback('android', '设备操作', )
|
|
42
|
+
@sync_method_callback('android', '设备操作', 5)
|
|
43
43
|
def a_get_window_size(self):
|
|
44
44
|
"""提取屏幕尺寸"""
|
|
45
45
|
w, h = self.base_data.android.window_size()
|
|
46
46
|
return w, h
|
|
47
47
|
|
|
48
|
-
@sync_method_callback('android', '设备操作', [
|
|
48
|
+
@sync_method_callback('android', '设备操作', 6, [
|
|
49
49
|
MethodModel(f='feli_path', p='请输入计算机文件路径', d=True),
|
|
50
50
|
MethodModel(f='catalogue', p='请输入设备目录', d=True)])
|
|
51
51
|
def a_push(self, feli_path, catalogue):
|
|
52
52
|
"""推送一个文件到设备"""
|
|
53
53
|
self.base_data.android.push(feli_path, catalogue)
|
|
54
54
|
|
|
55
|
-
@sync_method_callback('android', '设备操作', [
|
|
55
|
+
@sync_method_callback('android', '设备操作', 7, [
|
|
56
56
|
MethodModel(f='feli_path', p='请输入设备文件路径', d=True),
|
|
57
57
|
MethodModel(f='catalogue', p='请输入计算机目录', d=True)])
|
|
58
58
|
def a_pull(self, feli_path, catalogue):
|
|
59
59
|
"""提取文件"""
|
|
60
60
|
self.base_data.android.pull(feli_path, catalogue)
|
|
61
61
|
|
|
62
|
-
@sync_method_callback('android', '设备操作', )
|
|
62
|
+
@sync_method_callback('android', '设备操作', 8)
|
|
63
63
|
def a_unlock(self):
|
|
64
64
|
"""解锁屏幕"""
|
|
65
65
|
self.base_data.android.unlock()
|
|
66
66
|
|
|
67
|
-
@sync_method_callback('android', '设备操作', )
|
|
67
|
+
@sync_method_callback('android', '设备操作', 9)
|
|
68
68
|
def a_press_home(self):
|
|
69
69
|
"""按home键"""
|
|
70
70
|
self.base_data.android.press('home')
|
|
71
71
|
|
|
72
|
-
@sync_method_callback('android', '设备操作', )
|
|
72
|
+
@sync_method_callback('android', '设备操作', 10)
|
|
73
73
|
def a_press_back(self):
|
|
74
74
|
"""按back键"""
|
|
75
75
|
self.base_data.android.press('back')
|
|
76
76
|
|
|
77
|
-
@sync_method_callback('android', '设备操作', )
|
|
77
|
+
@sync_method_callback('android', '设备操作', 11)
|
|
78
78
|
def a_press_left(self):
|
|
79
79
|
"""按left键"""
|
|
80
80
|
self.base_data.android.press('left')
|
|
81
81
|
|
|
82
|
-
@sync_method_callback('android', '设备操作', )
|
|
82
|
+
@sync_method_callback('android', '设备操作', 12)
|
|
83
83
|
def a_press_right(self):
|
|
84
84
|
"""按right键"""
|
|
85
85
|
self.base_data.android.press('right')
|
|
86
86
|
|
|
87
|
-
@sync_method_callback('android', '设备操作', )
|
|
87
|
+
@sync_method_callback('android', '设备操作', 13)
|
|
88
88
|
def a_press_up(self):
|
|
89
89
|
"""按up键"""
|
|
90
90
|
self.base_data.android.press('up')
|
|
91
91
|
|
|
92
|
-
@sync_method_callback('android', '设备操作', )
|
|
92
|
+
@sync_method_callback('android', '设备操作', 14)
|
|
93
93
|
def a_press_down(self):
|
|
94
94
|
"""按down键"""
|
|
95
95
|
self.base_data.android.press('down')
|
|
96
96
|
|
|
97
|
-
@sync_method_callback('android', '设备操作', )
|
|
97
|
+
@sync_method_callback('android', '设备操作', 15)
|
|
98
98
|
def a_press_center(self):
|
|
99
99
|
"""按center键"""
|
|
100
100
|
self.base_data.android.press('center')
|
|
101
101
|
|
|
102
|
-
@sync_method_callback('android', '设备操作', )
|
|
102
|
+
@sync_method_callback('android', '设备操作', 16)
|
|
103
103
|
def a_press_menu(self):
|
|
104
104
|
"""按menu键"""
|
|
105
105
|
self.base_data.android.press('menu')
|
|
106
106
|
|
|
107
|
-
@sync_method_callback('android', '设备操作', )
|
|
107
|
+
@sync_method_callback('android', '设备操作', 17)
|
|
108
108
|
def a_press_search(self):
|
|
109
109
|
"""按search键"""
|
|
110
110
|
self.base_data.android.press('search')
|
|
111
111
|
|
|
112
|
-
@sync_method_callback('android', '设备操作', )
|
|
112
|
+
@sync_method_callback('android', '设备操作', 18)
|
|
113
113
|
def a_press_enter(self):
|
|
114
114
|
"""按enter键"""
|
|
115
115
|
self.base_data.android.press('enter')
|
|
116
116
|
|
|
117
|
-
@sync_method_callback('android', '设备操作', )
|
|
117
|
+
@sync_method_callback('android', '设备操作', 19)
|
|
118
118
|
def a_press_delete(self):
|
|
119
119
|
"""按delete键"""
|
|
120
120
|
self.base_data.android.press('delete')
|
|
121
121
|
|
|
122
|
-
@sync_method_callback('android', '设备操作', )
|
|
122
|
+
@sync_method_callback('android', '设备操作', 20)
|
|
123
123
|
def a_press_recent(self):
|
|
124
124
|
"""按recent键"""
|
|
125
125
|
self.base_data.android.press('recent')
|
|
126
126
|
|
|
127
|
-
@sync_method_callback('android', '设备操作', )
|
|
127
|
+
@sync_method_callback('android', '设备操作', 21)
|
|
128
128
|
def a_press_volume_up(self):
|
|
129
129
|
"""按volume_up键"""
|
|
130
130
|
self.base_data.android.press('volume_up')
|
|
131
131
|
|
|
132
|
-
@sync_method_callback('android', '设备操作', )
|
|
132
|
+
@sync_method_callback('android', '设备操作', 22)
|
|
133
133
|
def a_press_volume_down(self):
|
|
134
134
|
"""按volume_down键"""
|
|
135
135
|
self.base_data.android.press('volume_down')
|
|
136
136
|
|
|
137
|
-
@sync_method_callback('android', '设备操作', )
|
|
137
|
+
@sync_method_callback('android', '设备操作', 23)
|
|
138
138
|
def a_press_volume_mute(self):
|
|
139
139
|
"""按volume_mute键"""
|
|
140
140
|
self.base_data.android.press('volume_mute')
|
|
141
141
|
|
|
142
|
-
@sync_method_callback('android', '设备操作', )
|
|
142
|
+
@sync_method_callback('android', '设备操作', 24)
|
|
143
143
|
def a_press_camera(self):
|
|
144
144
|
"""按camera键"""
|
|
145
145
|
self.base_data.android.press('camera')
|
|
146
146
|
|
|
147
|
-
@sync_method_callback('android', '设备操作', )
|
|
147
|
+
@sync_method_callback('android', '设备操作', 25)
|
|
148
148
|
def a_press_power(self):
|
|
149
149
|
"""按power键"""
|
|
150
150
|
self.base_data.android.press('power')
|
|
@@ -6,10 +6,10 @@ import os.path
|
|
|
6
6
|
|
|
7
7
|
from uiautomator2 import Direction
|
|
8
8
|
|
|
9
|
-
from ...tools import Meta
|
|
10
|
-
from ...uidrive._base_data import BaseData
|
|
11
9
|
from mangotools.decorator import sync_method_callback
|
|
12
10
|
from mangotools.models import MethodModel
|
|
11
|
+
from ...tools import Meta
|
|
12
|
+
from ...uidrive._base_data import BaseData
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
class AndroidPage(metaclass=Meta):
|
|
@@ -18,27 +18,27 @@ class AndroidPage(metaclass=Meta):
|
|
|
18
18
|
def __init__(self, base_data: BaseData):
|
|
19
19
|
self.base_data = base_data
|
|
20
20
|
|
|
21
|
-
@sync_method_callback('android', '页面操作')
|
|
21
|
+
@sync_method_callback('android', '页面操作', 1)
|
|
22
22
|
def a_swipe_right(self):
|
|
23
23
|
"""右滑"""
|
|
24
24
|
self.base_data.android.swipe_ext(Direction.HORIZ_FORWARD)
|
|
25
25
|
|
|
26
|
-
@sync_method_callback('android', '页面操作')
|
|
26
|
+
@sync_method_callback('android', '页面操作', 2)
|
|
27
27
|
def a_swipe_left(self):
|
|
28
28
|
"""左滑"""
|
|
29
29
|
self.base_data.android.swipe_ext(Direction.HORIZ_BACKWARD)
|
|
30
30
|
|
|
31
|
-
@sync_method_callback('android', '页面操作')
|
|
31
|
+
@sync_method_callback('android', '页面操作', 3)
|
|
32
32
|
def a_swipe_up(self):
|
|
33
33
|
"""上滑"""
|
|
34
34
|
self.base_data.android.swipe_ext(Direction.FORWARD)
|
|
35
35
|
|
|
36
|
-
@sync_method_callback('android', '页面操作')
|
|
36
|
+
@sync_method_callback('android', '页面操作', 4)
|
|
37
37
|
def a_swipe_down(self):
|
|
38
38
|
"""下滑"""
|
|
39
39
|
self.base_data.android.swipe_ext(Direction.BACKWARD)
|
|
40
40
|
|
|
41
|
-
@sync_method_callback('android', '页面操作', [
|
|
41
|
+
@sync_method_callback('android', '页面操作', 5, [
|
|
42
42
|
MethodModel(f='sx', p='请输入sx坐标', d=True),
|
|
43
43
|
MethodModel(f='sy', p='请输入sy坐标', d=True),
|
|
44
44
|
MethodModel(f='ex', p='请输入ex坐标', d=True),
|
|
@@ -47,7 +47,7 @@ class AndroidPage(metaclass=Meta):
|
|
|
47
47
|
"""坐标滑动"""
|
|
48
48
|
self.base_data.android.swipe(sx, sy, ex, ey, 0.5)
|
|
49
49
|
|
|
50
|
-
@sync_method_callback('android', '页面操作', [
|
|
50
|
+
@sync_method_callback('android', '页面操作', 6, [
|
|
51
51
|
MethodModel(f='sx', p='请输入sx坐标', d=True),
|
|
52
52
|
MethodModel(f='sy', p='请输入sy坐标', d=True),
|
|
53
53
|
MethodModel(f='ex', p='请输入ex坐标', d=True),
|
|
@@ -56,18 +56,18 @@ class AndroidPage(metaclass=Meta):
|
|
|
56
56
|
"""坐标拖动"""
|
|
57
57
|
self.base_data.android.drag(sx, sy, ex, ey, 0.5)
|
|
58
58
|
|
|
59
|
-
@sync_method_callback('android', '页面操作')
|
|
59
|
+
@sync_method_callback('android', '页面操作', 7)
|
|
60
60
|
def a_open_quick_settings(self):
|
|
61
61
|
"""打开快速通知"""
|
|
62
62
|
self.base_data.android.open_quick_settings()
|
|
63
63
|
|
|
64
|
-
@sync_method_callback('android', '页面操作', [
|
|
64
|
+
@sync_method_callback('android', '页面操作', 8, [
|
|
65
65
|
MethodModel(f='file_name', p='请输入截图文件名称', d=True)])
|
|
66
66
|
def a_screenshot(self, file_name: str):
|
|
67
67
|
"""屏幕截图"""
|
|
68
68
|
self.base_data.android.screenshot(filename=os.path.join(self.base_data.screenshot_path, file_name))
|
|
69
69
|
|
|
70
|
-
@sync_method_callback('android', '页面操作', [
|
|
70
|
+
@sync_method_callback('android', '页面操作', 9, [
|
|
71
71
|
MethodModel(f='x', p='请输入按下的x坐标', d=True),
|
|
72
72
|
MethodModel(f='y', p='请输入按下的x坐标', d=True),
|
|
73
73
|
MethodModel(f='time_', p='请输入长按时间', d=True)])
|
|
@@ -75,42 +75,42 @@ class AndroidPage(metaclass=Meta):
|
|
|
75
75
|
"""长按屏幕N秒"""
|
|
76
76
|
self.base_data.android.long_click(x, y, time_)
|
|
77
77
|
|
|
78
|
-
@sync_method_callback('android', '页面操作')
|
|
78
|
+
@sync_method_callback('android', '页面操作', 10)
|
|
79
79
|
def a_set_orientation_natural(self):
|
|
80
80
|
"""设置为natural"""
|
|
81
81
|
self.base_data.android.set_orientation("natural")
|
|
82
82
|
|
|
83
|
-
@sync_method_callback('android', '页面操作')
|
|
83
|
+
@sync_method_callback('android', '页面操作', 11)
|
|
84
84
|
def a_set_orientation_left(self):
|
|
85
85
|
"""设置为natural"""
|
|
86
86
|
self.base_data.android.set_orientation("left")
|
|
87
87
|
|
|
88
|
-
@sync_method_callback('android', '页面操作')
|
|
88
|
+
@sync_method_callback('android', '页面操作', 12)
|
|
89
89
|
def a_set_orientation_right(self):
|
|
90
90
|
"""设置为right"""
|
|
91
91
|
self.base_data.android.set_orientation("right")
|
|
92
92
|
|
|
93
|
-
@sync_method_callback('android', '页面操作')
|
|
93
|
+
@sync_method_callback('android', '页面操作', 13)
|
|
94
94
|
def a_set_orientation_upsidedown(self):
|
|
95
95
|
"""设置为upsidedown"""
|
|
96
96
|
self.base_data.android.set_orientation("upsidedown")
|
|
97
97
|
|
|
98
|
-
@sync_method_callback('android', '页面操作')
|
|
98
|
+
@sync_method_callback('android', '页面操作', 14)
|
|
99
99
|
def a_freeze_rotation(self):
|
|
100
100
|
"""冻结旋转"""
|
|
101
101
|
self.base_data.android.freeze_rotation()
|
|
102
102
|
|
|
103
|
-
@sync_method_callback('android', '页面操作')
|
|
103
|
+
@sync_method_callback('android', '页面操作', 15)
|
|
104
104
|
def a_freeze_rotation_false(self):
|
|
105
105
|
"""取消冻结旋转"""
|
|
106
106
|
self.base_data.android.freeze_rotation(False)
|
|
107
107
|
|
|
108
|
-
@sync_method_callback('android', '页面操作')
|
|
108
|
+
@sync_method_callback('android', '页面操作', 16)
|
|
109
109
|
def a_dump_hierarchy(self):
|
|
110
110
|
"""获取转储的内容"""
|
|
111
111
|
return self.base_data.android.dump_hierarchy()
|
|
112
112
|
|
|
113
|
-
@sync_method_callback('android', '页面操作')
|
|
113
|
+
@sync_method_callback('android', '页面操作', 17)
|
|
114
114
|
def a_open_notification(self):
|
|
115
115
|
"""打开通知"""
|
|
116
116
|
return self.base_data.android.dump_hierarchy()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: mangoautomation
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.42
|
|
4
4
|
Summary: 测试工具
|
|
5
5
|
Home-page: https://gitee.com/mao-peng/testkit
|
|
6
6
|
Author: 毛鹏
|
|
@@ -12,7 +12,7 @@ Requires-Dist: pydantic ==2.9.2
|
|
|
12
12
|
Requires-Dist: playwright ==1.43.0
|
|
13
13
|
Requires-Dist: uiautomation ==2.0.20
|
|
14
14
|
Requires-Dist: uiautomator2 ==3.2.5
|
|
15
|
-
Requires-Dist: mangotools
|
|
15
|
+
Requires-Dist: mangotools >=1.0.23
|
|
16
16
|
Requires-Dist: adbutils ~=2.8.9
|
|
17
17
|
|
|
18
18
|
# testkit
|
|
@@ -15,13 +15,13 @@ mangoautomation/uidrive/_base_data.py,sha256=ur2Ts40MAhOYXb0vGVXZdSwEVCI3Csri9I9
|
|
|
15
15
|
mangoautomation/uidrive/_driver_object.py,sha256=Re8j6VLHKfwW2VFdi-1XFRuix8tRBLcHYRBLVF6CApE,1962
|
|
16
16
|
mangoautomation/uidrive/_sync_element.py,sha256=s9wb_RUCDcyONhRghe5T0I7zpTfvzRK3DhlxmT_DyVk,13242
|
|
17
17
|
mangoautomation/uidrive/android/__init__.py,sha256=FSIzfPane33QEj6bXslpd8bF1xGCDwMAHBOrpNzdyE4,5874
|
|
18
|
-
mangoautomation/uidrive/android/_application.py,sha256=
|
|
19
|
-
mangoautomation/uidrive/android/_assertion.py,sha256=
|
|
18
|
+
mangoautomation/uidrive/android/_application.py,sha256=Cj7-oDPmqF-PMirRZgjt5xy_nqmUmRIZWt_VJ8EoKTE,2798
|
|
19
|
+
mangoautomation/uidrive/android/_assertion.py,sha256=Rnf0ZSbegczxj1oKoCKe-__oLs9ugzIG_KlJbO_w0vI,3629
|
|
20
20
|
mangoautomation/uidrive/android/_customization.py,sha256=pCLMmruozOyCJQZWAYupxxKqpWmZyCYsfSBw3XW7vf0,381
|
|
21
21
|
mangoautomation/uidrive/android/_element.py,sha256=pLtiAfskhlMdemy4KogdiDB_AKlB_j1MvD5M5pIE3eU,6987
|
|
22
|
-
mangoautomation/uidrive/android/_equipment.py,sha256=
|
|
22
|
+
mangoautomation/uidrive/android/_equipment.py,sha256=v-QgBxZMGr--ZV6HpttopsChOWTCNRCObVYVVomDNR8,5123
|
|
23
23
|
mangoautomation/uidrive/android/_new_android.py,sha256=UHj2DaNBfgvnJxYIzmUNc3gqTIRXxL_5kxEDQVbzWNw,1637
|
|
24
|
-
mangoautomation/uidrive/android/_page.py,sha256=
|
|
24
|
+
mangoautomation/uidrive/android/_page.py,sha256=cOPKlIucf-rqtpm9AkpZtAnDd9QGvJRGLXS15kPVhIM,4454
|
|
25
25
|
mangoautomation/uidrive/pc/__init__.py,sha256=gp3T9C5bSA78dv1AgWXeB9yQQi6q5Tkd0NedCencGWo,2275
|
|
26
26
|
mangoautomation/uidrive/pc/assertion.py,sha256=mH25hZ2i4T8kA1F2loW_nuPJ-Hb0z1pwILTJqkwwpLA,125
|
|
27
27
|
mangoautomation/uidrive/pc/customization.py,sha256=hHf66ImrVxFlGtONrWSHUDrYjmWFc4ANJ883TIrJFG8,239
|
|
@@ -48,8 +48,8 @@ mangoautomation/uidrive/web/sync_web/_page.py,sha256=MNekcL7o5YXEloeuvi3YrpOZxGh
|
|
|
48
48
|
tests/__init__.py,sha256=UhCNFqiVjxdh4CXESNo4oE7qfjpYYVkeHbSE5-7LGDY,125
|
|
49
49
|
tests/test_ui_and.py,sha256=4k0_3bx_k2KbZifeRWGK65sxtdiPUOjkNzZ5oxjrc18,672
|
|
50
50
|
tests/test_ui_web.py,sha256=MFaUN8O5qKOMMgyk2eelhKZsYcSJm0Do6pCgsdBZEH4,2765
|
|
51
|
-
mangoautomation-1.0.
|
|
52
|
-
mangoautomation-1.0.
|
|
53
|
-
mangoautomation-1.0.
|
|
54
|
-
mangoautomation-1.0.
|
|
55
|
-
mangoautomation-1.0.
|
|
51
|
+
mangoautomation-1.0.42.dist-info/LICENSE,sha256=03WP-mgFmo8ofRYDe1HVDQUEUKQZ2q6P6Q-2A4c-46A,1085
|
|
52
|
+
mangoautomation-1.0.42.dist-info/METADATA,sha256=ulqvhUKHMFFANmHKUnzz_VfWE8WcXbVEzu43Q5-dnr0,626
|
|
53
|
+
mangoautomation-1.0.42.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
|
|
54
|
+
mangoautomation-1.0.42.dist-info/top_level.txt,sha256=g-uCmjvEODG8WFbmwbGM0-G0zHntHv8ZsS0PQRaMGtE,22
|
|
55
|
+
mangoautomation-1.0.42.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|