mangoautomation 1.0.53__py3-none-any.whl → 1.0.56__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/enums/__init__.py +1 -3
- mangoautomation/exceptions/__init__.py +1 -3
- mangoautomation/models/__init__.py +1 -3
- mangoautomation/tools/__init__.py +1 -3
- mangoautomation/uidrive/__init__.py +1 -3
- mangoautomation/uidrive/_async_element.py +1 -2
- mangoautomation/uidrive/_driver_object.py +6 -3
- mangoautomation/uidrive/_sync_element.py +1 -2
- mangoautomation/uidrive/web/async_web/_new_browser.py +11 -6
- mangoautomation/uidrive/web/sync_web/_new_browser.py +14 -9
- mangoautomation-1.0.56.dist-info/METADATA +42 -0
- {mangoautomation-1.0.53.dist-info → mangoautomation-1.0.56.dist-info}/RECORD +15 -15
- {mangoautomation-1.0.53.dist-info → mangoautomation-1.0.56.dist-info}/WHEEL +1 -1
- mangoautomation-1.0.53.dist-info/METADATA +0 -31
- {mangoautomation-1.0.53.dist-info → mangoautomation-1.0.56.dist-info/licenses}/LICENSE +0 -0
- {mangoautomation-1.0.53.dist-info → mangoautomation-1.0.56.dist-info}/top_level.txt +0 -0
|
@@ -7,9 +7,7 @@ import sys
|
|
|
7
7
|
|
|
8
8
|
from ..enums._ui_enum import ElementExpEnum, ElementOperationEnum, DeviceEnum, BrowserTypeEnum, DriveTypeEnum
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
if f"{python_version.major}.{python_version.minor}" != "3.10":
|
|
12
|
-
raise Exception("必须使用>Python3.10.4")
|
|
10
|
+
|
|
13
11
|
__all__ = [
|
|
14
12
|
'ElementOperationEnum',
|
|
15
13
|
'DeviceEnum',
|
|
@@ -6,9 +6,7 @@ import sys
|
|
|
6
6
|
|
|
7
7
|
from ..models._ui_model import ElementModel, ElementResultModel
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
if f"{python_version.major}.{python_version.minor}" != "3.10":
|
|
11
|
-
raise Exception("必须使用>Python3.10.4")
|
|
9
|
+
|
|
12
10
|
__all__ = [
|
|
13
11
|
'ElementModel',
|
|
14
12
|
'ElementResultModel',
|
|
@@ -8,7 +8,5 @@ import sys
|
|
|
8
8
|
from ..tools._mate import Meta
|
|
9
9
|
from ..tools._uiautodev import start_uiautodev, stop_uiautodev
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
if f"{python_version.major}.{python_version.minor}" != "3.10":
|
|
13
|
-
raise Exception("必须使用>Python3.10.4")
|
|
11
|
+
|
|
14
12
|
__all__ = ['Meta', 'start_uiautodev', 'stop_uiautodev']
|
|
@@ -9,9 +9,7 @@ from ..uidrive._base_data import BaseData
|
|
|
9
9
|
from ..uidrive._driver_object import DriverObject
|
|
10
10
|
from ..uidrive._sync_element import SyncElement
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
if f"{python_version.major}.{python_version.minor}" != "3.10":
|
|
14
|
-
raise Exception("必须使用>Python3.10.4")
|
|
12
|
+
|
|
15
13
|
__all__ = [
|
|
16
14
|
'AsyncElement',
|
|
17
15
|
'BaseData',
|
|
@@ -126,7 +126,6 @@ class AsyncElement(AsyncWebDevice, AndroidDriver):
|
|
|
126
126
|
if self.element_model.ope_value is None:
|
|
127
127
|
raise MangoAutomationError(*ERROR_MSG_0054)
|
|
128
128
|
await self.__ope_value()
|
|
129
|
-
self.element_model.ope_value = self.base_data.test_data.replace(self.element_model.ope_value)
|
|
130
129
|
if self.drive_type == DriveTypeEnum.WEB.value:
|
|
131
130
|
await self.web_action_element(
|
|
132
131
|
self.element_model.name,
|
|
@@ -147,7 +146,6 @@ class AsyncElement(AsyncWebDevice, AndroidDriver):
|
|
|
147
146
|
if self.element_model.ope_value is None:
|
|
148
147
|
raise MangoAutomationError(*ERROR_MSG_0054)
|
|
149
148
|
await self.__ope_value(True)
|
|
150
|
-
self.element_model.ope_value = self.base_data.test_data.replace(self.element_model.ope_value)
|
|
151
149
|
try:
|
|
152
150
|
if self.drive_type == DriveTypeEnum.WEB.value:
|
|
153
151
|
self.element_result_model.ass_msg = await self.web_assertion_element(
|
|
@@ -235,6 +233,7 @@ class AsyncElement(AsyncWebDevice, AndroidDriver):
|
|
|
235
233
|
for f, v in self.element_data.items():
|
|
236
234
|
if f == i.f:
|
|
237
235
|
i.v = self.base_data.test_data.replace(v)
|
|
236
|
+
i.v = self.base_data.test_data.replace(i.v)
|
|
238
237
|
|
|
239
238
|
except AttributeError as error:
|
|
240
239
|
self.base_data.log.debug(
|
|
@@ -14,7 +14,8 @@ from ..uidrive.web.sync_web._new_browser import SyncWebNewBrowser
|
|
|
14
14
|
|
|
15
15
|
class DriverObject:
|
|
16
16
|
|
|
17
|
-
def __init__(self, is_async=False):
|
|
17
|
+
def __init__(self, log, is_async=False):
|
|
18
|
+
self.log = log
|
|
18
19
|
self.is_async = is_async
|
|
19
20
|
self.web: Optional[AsyncWebNewBrowser | SyncWebNewBrowser] = None
|
|
20
21
|
self.android: Optional[NewAndroid] = None
|
|
@@ -41,7 +42,8 @@ class DriverObject:
|
|
|
41
42
|
web_h5,
|
|
42
43
|
is_header_intercept,
|
|
43
44
|
web_is_default,
|
|
44
|
-
videos_path
|
|
45
|
+
videos_path,
|
|
46
|
+
log=self.log,
|
|
45
47
|
)
|
|
46
48
|
else:
|
|
47
49
|
self.web = SyncWebNewBrowser(
|
|
@@ -53,7 +55,8 @@ class DriverObject:
|
|
|
53
55
|
web_h5,
|
|
54
56
|
is_header_intercept,
|
|
55
57
|
web_is_default,
|
|
56
|
-
videos_path
|
|
58
|
+
videos_path,
|
|
59
|
+
log=self.log,
|
|
57
60
|
)
|
|
58
61
|
|
|
59
62
|
def set_android(self, and_equipment: str):
|
|
@@ -126,7 +126,6 @@ class SyncElement(SyncWebDevice, AndroidDriver):
|
|
|
126
126
|
if self.element_model.ope_value is None:
|
|
127
127
|
raise MangoAutomationError(*ERROR_MSG_0054)
|
|
128
128
|
self.__ope_value()
|
|
129
|
-
self.element_model.ope_value = self.base_data.test_data.replace(self.element_model.ope_value)
|
|
130
129
|
if self.drive_type == DriveTypeEnum.WEB.value:
|
|
131
130
|
self.web_action_element(
|
|
132
131
|
self.element_model.name,
|
|
@@ -147,7 +146,6 @@ class SyncElement(SyncWebDevice, AndroidDriver):
|
|
|
147
146
|
if self.element_model.ope_value is None:
|
|
148
147
|
raise MangoAutomationError(*ERROR_MSG_0054)
|
|
149
148
|
self.__ope_value(True)
|
|
150
|
-
self.element_model.ope_value = self.base_data.test_data.replace(self.element_model.ope_value)
|
|
151
149
|
try:
|
|
152
150
|
if self.drive_type == DriveTypeEnum.WEB.value:
|
|
153
151
|
self.element_result_model.ass_msg = self.web_assertion_element(
|
|
@@ -235,6 +233,7 @@ class SyncElement(SyncWebDevice, AndroidDriver):
|
|
|
235
233
|
for f, v in self.element_data.items():
|
|
236
234
|
if f == i.f:
|
|
237
235
|
i.v = self.base_data.test_data.replace(v)
|
|
236
|
+
i.v = self.base_data.test_data.replace(i.v)
|
|
238
237
|
|
|
239
238
|
except AttributeError as error:
|
|
240
239
|
self.base_data.log.debug(
|
|
@@ -35,7 +35,8 @@ class AsyncWebNewBrowser:
|
|
|
35
35
|
web_h5=None,
|
|
36
36
|
is_header_intercept=False,
|
|
37
37
|
web_is_default=False,
|
|
38
|
-
videos_path=None
|
|
38
|
+
videos_path=None,
|
|
39
|
+
log=None,
|
|
39
40
|
):
|
|
40
41
|
self.lock = asyncio.Lock()
|
|
41
42
|
self.web_type = web_type
|
|
@@ -47,6 +48,7 @@ class AsyncWebNewBrowser:
|
|
|
47
48
|
self.web_is_default = web_is_default
|
|
48
49
|
self.is_header_intercept = is_header_intercept
|
|
49
50
|
self.videos_path = videos_path
|
|
51
|
+
self.log = log
|
|
50
52
|
self.browser_path = ['chrome.exe', 'msedge.exe', 'firefox.exe', '苹果', '360se.exe']
|
|
51
53
|
self.browser: Optional[None | Browser] = None
|
|
52
54
|
self.playwright: Optional[None | Playwright] = None
|
|
@@ -61,9 +63,9 @@ class AsyncWebNewBrowser:
|
|
|
61
63
|
context = await self.new_context()
|
|
62
64
|
page = await self.new_page(context)
|
|
63
65
|
return context, page
|
|
64
|
-
except Exception
|
|
66
|
+
except Exception:
|
|
67
|
+
self.log.error(f'初始化page失败,错误信息:{traceback.format_exc()}')
|
|
65
68
|
self.browser = None
|
|
66
|
-
print(traceback.format_exc())
|
|
67
69
|
if count >= 3:
|
|
68
70
|
raise MangoAutomationError(*ERROR_MSG_0057)
|
|
69
71
|
else:
|
|
@@ -82,7 +84,8 @@ class AsyncWebNewBrowser:
|
|
|
82
84
|
if self.web_is_default:
|
|
83
85
|
try:
|
|
84
86
|
return await browser.launch()
|
|
85
|
-
except Error:
|
|
87
|
+
except Error as error:
|
|
88
|
+
self.log.error(f'初始化浏览器失败-1,类型:{error},详情:{traceback.format_exc()}')
|
|
86
89
|
raise MangoAutomationError(*ERROR_MSG_0062)
|
|
87
90
|
else:
|
|
88
91
|
try:
|
|
@@ -97,7 +100,8 @@ class AsyncWebNewBrowser:
|
|
|
97
100
|
headless=self.web_headers,
|
|
98
101
|
executable_path=self.web_path if self.web_path else self.__search_path()
|
|
99
102
|
)
|
|
100
|
-
except Error:
|
|
103
|
+
except Error as error:
|
|
104
|
+
self.log.error(f'初始化浏览器失败-2,类型:{error},详情:{traceback.format_exc()}')
|
|
101
105
|
raise MangoAutomationError(*ERROR_MSG_0009, value=(self.web_path,))
|
|
102
106
|
|
|
103
107
|
async def new_context(self) -> BrowserContext:
|
|
@@ -118,7 +122,8 @@ class AsyncWebNewBrowser:
|
|
|
118
122
|
if self.is_header_intercept:
|
|
119
123
|
await page.route("**/*", self.wen_intercept_request) # 应用拦截函数到页面的所有请求
|
|
120
124
|
return page
|
|
121
|
-
except Error:
|
|
125
|
+
except Error as error:
|
|
126
|
+
self.log.error(f'初始化page失败,类型:{error},详情:{traceback.format_exc()}')
|
|
122
127
|
raise MangoAutomationError(*ERROR_MSG_0009, value=(self.web_path,))
|
|
123
128
|
|
|
124
129
|
async def close(self):
|
|
@@ -24,7 +24,6 @@ from ....exceptions import MangoAutomationError
|
|
|
24
24
|
from ....exceptions._error_msg import ERROR_MSG_0057, ERROR_MSG_0008, ERROR_MSG_0062, ERROR_MSG_0009, ERROR_MSG_0055
|
|
25
25
|
|
|
26
26
|
|
|
27
|
-
|
|
28
27
|
class SyncWebNewBrowser:
|
|
29
28
|
|
|
30
29
|
def __init__(self,
|
|
@@ -36,7 +35,8 @@ class SyncWebNewBrowser:
|
|
|
36
35
|
web_h5=None,
|
|
37
36
|
is_header_intercept=False,
|
|
38
37
|
web_is_default=False,
|
|
39
|
-
videos_path=None
|
|
38
|
+
videos_path=None,
|
|
39
|
+
log=None,
|
|
40
40
|
):
|
|
41
41
|
self.lock = threading.Lock()
|
|
42
42
|
self.web_type = web_type
|
|
@@ -48,6 +48,7 @@ class SyncWebNewBrowser:
|
|
|
48
48
|
self.web_is_default = web_is_default
|
|
49
49
|
self.videos_path = videos_path
|
|
50
50
|
self.is_header_intercept = is_header_intercept
|
|
51
|
+
self.log = log
|
|
51
52
|
self.browser_path = ['chrome.exe', 'msedge.exe', 'firefox.exe', '苹果', '360se.exe']
|
|
52
53
|
self.browser: Optional[None | Browser] = None
|
|
53
54
|
self.playwright: Optional[None | Playwright] = None
|
|
@@ -55,15 +56,16 @@ class SyncWebNewBrowser:
|
|
|
55
56
|
def new_web_page(self, count=0) -> tuple[BrowserContext, Page]:
|
|
56
57
|
if self.browser is None:
|
|
57
58
|
with self.lock:
|
|
58
|
-
self.browser
|
|
59
|
-
|
|
59
|
+
if self.browser is None:
|
|
60
|
+
self.browser = self.new_browser()
|
|
61
|
+
time.sleep(1)
|
|
60
62
|
try:
|
|
61
63
|
context = self.new_context()
|
|
62
64
|
page = self.new_page(context)
|
|
63
65
|
return context, page
|
|
64
|
-
except Exception
|
|
66
|
+
except Exception:
|
|
67
|
+
self.log.error(f'初始化page失败,错误信息:{traceback.format_exc()}')
|
|
65
68
|
self.browser = None
|
|
66
|
-
traceback.format_exc()
|
|
67
69
|
if count >= 3:
|
|
68
70
|
raise MangoAutomationError(*ERROR_MSG_0057)
|
|
69
71
|
else:
|
|
@@ -82,7 +84,8 @@ class SyncWebNewBrowser:
|
|
|
82
84
|
if self.web_is_default:
|
|
83
85
|
try:
|
|
84
86
|
return browser.launch()
|
|
85
|
-
except Error:
|
|
87
|
+
except Error as error:
|
|
88
|
+
self.log.error(f'初始化浏览器失败-1,类型:{error},详情:{traceback.format_exc()}')
|
|
86
89
|
raise MangoAutomationError(*ERROR_MSG_0062)
|
|
87
90
|
else:
|
|
88
91
|
try:
|
|
@@ -97,7 +100,8 @@ class SyncWebNewBrowser:
|
|
|
97
100
|
headless=self.web_headers,
|
|
98
101
|
executable_path=self.web_path if self.web_path else self.__search_path()
|
|
99
102
|
)
|
|
100
|
-
except Error:
|
|
103
|
+
except Error as error:
|
|
104
|
+
self.log.error(f'初始化浏览器失败-2,类型:{error},详情:{traceback.format_exc()}')
|
|
101
105
|
raise MangoAutomationError(*ERROR_MSG_0009, value=(self.web_path,))
|
|
102
106
|
|
|
103
107
|
def new_context(self) -> BrowserContext:
|
|
@@ -118,7 +122,8 @@ class SyncWebNewBrowser:
|
|
|
118
122
|
if self.is_header_intercept:
|
|
119
123
|
page.route("**/*", self.wen_intercept_request) # 应用拦截函数到页面的所有请求
|
|
120
124
|
return page
|
|
121
|
-
except Error:
|
|
125
|
+
except Error as error:
|
|
126
|
+
self.log.error(f'初始化page失败,类型:{error},详情:{traceback.format_exc()}')
|
|
122
127
|
raise MangoAutomationError(*ERROR_MSG_0009, value=(self.web_path,))
|
|
123
128
|
|
|
124
129
|
def close(self):
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: mangoautomation
|
|
3
|
+
Version: 1.0.56
|
|
4
|
+
Summary: 测试工具
|
|
5
|
+
Home-page: https://gitee.com/mao-peng/testkit
|
|
6
|
+
Author: 毛鹏
|
|
7
|
+
Author-email: 729164035@qq.com
|
|
8
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
9
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
Requires-Dist: setuptools>=68.2.0
|
|
14
|
+
Requires-Dist: pydantic>=2.9.2
|
|
15
|
+
Requires-Dist: playwright==1.43.0
|
|
16
|
+
Requires-Dist: uiautomation>=2.0.20
|
|
17
|
+
Requires-Dist: uiautomator2>=3.2.5
|
|
18
|
+
Requires-Dist: mangotools>=1.1.28
|
|
19
|
+
Requires-Dist: adbutils~=2.8.9
|
|
20
|
+
Requires-Dist: uiautodev>=0.9.0
|
|
21
|
+
Dynamic: author
|
|
22
|
+
Dynamic: author-email
|
|
23
|
+
Dynamic: classifier
|
|
24
|
+
Dynamic: description
|
|
25
|
+
Dynamic: home-page
|
|
26
|
+
Dynamic: license-file
|
|
27
|
+
Dynamic: requires-dist
|
|
28
|
+
Dynamic: summary
|
|
29
|
+
|
|
30
|
+
# testkit
|
|
31
|
+
|
|
32
|
+
#### 介绍
|
|
33
|
+
|
|
34
|
+
测试工具
|
|
35
|
+
|
|
36
|
+
#### 安装教程
|
|
37
|
+
|
|
38
|
+
1. pip install mangokit
|
|
39
|
+
|
|
40
|
+
#### 使用说明
|
|
41
|
+
|
|
42
|
+
1.
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
mangoautomation/__init__.py,sha256=6nV7fyiPU5G-kWbrpCQUlkJdhJyPQh27qQaSvNvQkzQ,125
|
|
2
|
-
mangoautomation/enums/__init__.py,sha256=
|
|
2
|
+
mangoautomation/enums/__init__.py,sha256=TZnjNeYQRysRolki82U0_s8BQamQ2EjlWFJ-RDDPel8,387
|
|
3
3
|
mangoautomation/enums/_base_enum.py,sha256=dpaXsdhWY08BhIzi1B1ksh_p18ZTmhWvTYhbd3n_ONQ,1176
|
|
4
4
|
mangoautomation/enums/_ui_enum.py,sha256=rdkejsyc4ogZbyNfZcp1q0V0bDPo14vg0A6or6ShaXA,4494
|
|
5
|
-
mangoautomation/exceptions/__init__.py,sha256=
|
|
5
|
+
mangoautomation/exceptions/__init__.py,sha256=4CmTPcSFypENe3zXzsBUjA5MxXLugnP14dlakmItVjs,227
|
|
6
6
|
mangoautomation/exceptions/_error_msg.py,sha256=wnyHrBPE4ZGcWhvz8bD2K-8rMRRwcUIVVYIHWdhYM2U,5335
|
|
7
7
|
mangoautomation/exceptions/_exceptions.py,sha256=BiyST1QPivpfIOuKn1gKhpXOyBv6gfip_KvlQuu8ctw,385
|
|
8
|
-
mangoautomation/models/__init__.py,sha256=
|
|
8
|
+
mangoautomation/models/__init__.py,sha256=VaL1_5Dvm2g70NGgWCKzbje4VQzJhcnAAdg4JP1WJ_U,269
|
|
9
9
|
mangoautomation/models/_ui_model.py,sha256=wKiBNpGDhSVCAYf798I0bMzdhCGXfSOptMCQrBLTUCM,1416
|
|
10
|
-
mangoautomation/tools/__init__.py,sha256=
|
|
10
|
+
mangoautomation/tools/__init__.py,sha256=J-uPfaTZMMo7CL2PY6_5qCO24iIBTtUJTuFXDJz_AZg,296
|
|
11
11
|
mangoautomation/tools/_mate.py,sha256=9lk_EJnAX_OyXbe5WacyHkkcEr2ScBgasl6eUnlklWA,405
|
|
12
12
|
mangoautomation/tools/_uiautodev.py,sha256=RMOQMXse744xwUDb1_l7qDv9mUiqZt1Gm5sbB-nlgDk,1388
|
|
13
|
-
mangoautomation/uidrive/__init__.py,sha256=
|
|
14
|
-
mangoautomation/uidrive/_async_element.py,sha256
|
|
13
|
+
mangoautomation/uidrive/__init__.py,sha256=3xD94fw5QQvBPMPDq2o-SiJI_zt0AdJuB_X0eAFth8g,430
|
|
14
|
+
mangoautomation/uidrive/_async_element.py,sha256=-nkYBazbYlitsTIfN8XhKIM8GitQifoZ0aTqaOH05Nk,13757
|
|
15
15
|
mangoautomation/uidrive/_base_data.py,sha256=ur2Ts40MAhOYXb0vGVXZdSwEVCI3Csri9I9f1pw1r4Y,3766
|
|
16
|
-
mangoautomation/uidrive/_driver_object.py,sha256=
|
|
17
|
-
mangoautomation/uidrive/_sync_element.py,sha256=
|
|
16
|
+
mangoautomation/uidrive/_driver_object.py,sha256=7RGiAIPHU_bQtwVPEprnXt-HOzoKuKn_Bu2RZxjSAVs,2055
|
|
17
|
+
mangoautomation/uidrive/_sync_element.py,sha256=Zdg5LwNeZBjctpojPmjQfMgrsAAne_w_KWFwhucSlxA,13576
|
|
18
18
|
mangoautomation/uidrive/android/__init__.py,sha256=SWn7PwRZOf34LCE9KigClDaV8R0n70rqLsG6hCeAok0,5499
|
|
19
19
|
mangoautomation/uidrive/android/_application.py,sha256=EeEM0MPtOPeYeKx92mtMFWqGpCRmri-D_CzXvPt13RA,2800
|
|
20
20
|
mangoautomation/uidrive/android/_assertion.py,sha256=Gzic7cH3_Vr6NLiMBPRJr7q1F8YFF2dEopINMR4XQFc,4289
|
|
@@ -37,7 +37,7 @@ mangoautomation/uidrive/web/async_web/_browser.py,sha256=39YroURzagpq0HoEn1RZnNf
|
|
|
37
37
|
mangoautomation/uidrive/web/async_web/_customization.py,sha256=uw6p9uLHLXglgSkH4qjDl1v0iGlaNjvf8LljRH5cAHU,347
|
|
38
38
|
mangoautomation/uidrive/web/async_web/_element.py,sha256=Si0ql_vGtgzacEaSEbglGTw96qdYHcsYEbYqgtIgYCo,10150
|
|
39
39
|
mangoautomation/uidrive/web/async_web/_input_device.py,sha256=sMAMHb_8QyPx3pKci0gRDQc2O7h1OYMGyA7fCWl81iM,3288
|
|
40
|
-
mangoautomation/uidrive/web/async_web/_new_browser.py,sha256=
|
|
40
|
+
mangoautomation/uidrive/web/async_web/_new_browser.py,sha256=iQMQhNHKsz-4yPvXUiir-OwFZQLZbaRtDEwIydimUMs,6089
|
|
41
41
|
mangoautomation/uidrive/web/async_web/_page.py,sha256=TCYf79qQdVBBTTNq2COZFJVcLCgg5Ksu9lMgmQPVInU,2147
|
|
42
42
|
mangoautomation/uidrive/web/sync_web/__init__.py,sha256=31U15FJftsv6yyDlKT-2zN0CNPyolZPRuPh7mdeKKas,7961
|
|
43
43
|
mangoautomation/uidrive/web/sync_web/_assertion.py,sha256=hVA7-Z3CfPgkmtnK_3M5UGo6sct88W6AJfQTnrqu9jU,12534
|
|
@@ -45,13 +45,13 @@ mangoautomation/uidrive/web/sync_web/_browser.py,sha256=c7xHkIIFPawlzcVkGjwqeKfW
|
|
|
45
45
|
mangoautomation/uidrive/web/sync_web/_customization.py,sha256=E_pfI8gKd0O6r4huJIvA6hoW-X9fSDVL4zEUqhHgxwE,355
|
|
46
46
|
mangoautomation/uidrive/web/sync_web/_element.py,sha256=KkgLxGVwdl4JhRkIbGrUA12BmHohggdalEGlnztyrSE,9783
|
|
47
47
|
mangoautomation/uidrive/web/sync_web/_input_device.py,sha256=8t6tJgMb4zgb4Sv02XP3gUU0ZVbApCs3WaILv8Fe1iY,3169
|
|
48
|
-
mangoautomation/uidrive/web/sync_web/_new_browser.py,sha256=
|
|
48
|
+
mangoautomation/uidrive/web/sync_web/_new_browser.py,sha256=IYRrv6KXk-VxS5v5dRgqRdhTYQ1CVm4VlO4ioacEjcs,6036
|
|
49
49
|
mangoautomation/uidrive/web/sync_web/_page.py,sha256=MNekcL7o5YXEloeuvi3YrpOZxGhEWfrq-5i4PbtTLFg,2027
|
|
50
|
+
mangoautomation-1.0.56.dist-info/licenses/LICENSE,sha256=03WP-mgFmo8ofRYDe1HVDQUEUKQZ2q6P6Q-2A4c-46A,1085
|
|
50
51
|
tests/__init__.py,sha256=UhCNFqiVjxdh4CXESNo4oE7qfjpYYVkeHbSE5-7LGDY,125
|
|
51
52
|
tests/test_ui_and.py,sha256=4k0_3bx_k2KbZifeRWGK65sxtdiPUOjkNzZ5oxjrc18,672
|
|
52
53
|
tests/test_ui_web.py,sha256=MFaUN8O5qKOMMgyk2eelhKZsYcSJm0Do6pCgsdBZEH4,2765
|
|
53
|
-
mangoautomation-1.0.
|
|
54
|
-
mangoautomation-1.0.
|
|
55
|
-
mangoautomation-1.0.
|
|
56
|
-
mangoautomation-1.0.
|
|
57
|
-
mangoautomation-1.0.53.dist-info/RECORD,,
|
|
54
|
+
mangoautomation-1.0.56.dist-info/METADATA,sha256=Gu8_FKCwI0t_IxG0PUz3M6EPWOMpzCmocndAv4i7Fk8,976
|
|
55
|
+
mangoautomation-1.0.56.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
56
|
+
mangoautomation-1.0.56.dist-info/top_level.txt,sha256=g-uCmjvEODG8WFbmwbGM0-G0zHntHv8ZsS0PQRaMGtE,22
|
|
57
|
+
mangoautomation-1.0.56.dist-info/RECORD,,
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: mangoautomation
|
|
3
|
-
Version: 1.0.53
|
|
4
|
-
Summary: 测试工具
|
|
5
|
-
Home-page: https://gitee.com/mao-peng/testkit
|
|
6
|
-
Author: 毛鹏
|
|
7
|
-
Author-email: 729164035@qq.com
|
|
8
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
9
|
-
License-File: LICENSE
|
|
10
|
-
Requires-Dist: setuptools ==68.2.0
|
|
11
|
-
Requires-Dist: pydantic ==2.9.2
|
|
12
|
-
Requires-Dist: playwright ==1.43.0
|
|
13
|
-
Requires-Dist: uiautomation ==2.0.20
|
|
14
|
-
Requires-Dist: uiautomator2 ==3.2.5
|
|
15
|
-
Requires-Dist: mangotools >=1.1.17
|
|
16
|
-
Requires-Dist: adbutils ~=2.8.9
|
|
17
|
-
Requires-Dist: uiautodev ==0.9.0
|
|
18
|
-
|
|
19
|
-
# testkit
|
|
20
|
-
|
|
21
|
-
#### 介绍
|
|
22
|
-
|
|
23
|
-
测试工具
|
|
24
|
-
|
|
25
|
-
#### 安装教程
|
|
26
|
-
|
|
27
|
-
1. pip install mangokit
|
|
28
|
-
|
|
29
|
-
#### 使用说明
|
|
30
|
-
|
|
31
|
-
1.
|
|
File without changes
|
|
File without changes
|