mangoautomation 1.1.23__py3-none-any.whl → 1.1.25__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.

Files changed (40) hide show
  1. mangoautomation/mangos/__pycache__/__init__.cpython-310.pyc +0 -0
  2. mangoautomation/mangos/mangos.cp310-win_amd64.pyd +0 -0
  3. mangoautomation/mangos/mangos.cp312-win_amd64.pyd +0 -0
  4. mangoautomation/mangos/mangos.cpython-310-darwin.so +0 -0
  5. mangoautomation/mangos/mangos.cpython-310-x86_64-linux-gnu.so +0 -0
  6. mangoautomation/mangos/mangos.cpython-312-darwin.so +0 -0
  7. mangoautomation/mangos/mangos.cpython-312-x86_64-linux-gnu.so +0 -0
  8. mangoautomation/uidrives/_driver_object.py +5 -36
  9. mangoautomation-1.1.25.dist-info/METADATA +42 -0
  10. mangoautomation-1.1.25.dist-info/RECORD +48 -0
  11. {mangoautomation-1.1.23.dist-info → mangoautomation-1.1.25.dist-info}/WHEEL +1 -1
  12. tests/demo1.py +94 -21
  13. tests/get_ope.py +12 -3
  14. mangoautomation/uidrives/android/_application.py +0 -70
  15. mangoautomation/uidrives/android/_assertion.py +0 -90
  16. mangoautomation/uidrives/android/_customization.py +0 -15
  17. mangoautomation/uidrives/android/_element.py +0 -169
  18. mangoautomation/uidrives/android/_equipment.py +0 -151
  19. mangoautomation/uidrives/android/_new_android.py +0 -54
  20. mangoautomation/uidrives/android/_page.py +0 -116
  21. mangoautomation/uidrives/web/async_web/__init__.py +0 -165
  22. mangoautomation/uidrives/web/async_web/_assertion.py +0 -303
  23. mangoautomation/uidrives/web/async_web/_browser.py +0 -112
  24. mangoautomation/uidrives/web/async_web/_customization.py +0 -14
  25. mangoautomation/uidrives/web/async_web/_element.py +0 -240
  26. mangoautomation/uidrives/web/async_web/_input_device.py +0 -82
  27. mangoautomation/uidrives/web/async_web/_new_browser.py +0 -153
  28. mangoautomation/uidrives/web/async_web/_page.py +0 -63
  29. mangoautomation/uidrives/web/sync_web/__init__.py +0 -160
  30. mangoautomation/uidrives/web/sync_web/_assertion.py +0 -304
  31. mangoautomation/uidrives/web/sync_web/_browser.py +0 -112
  32. mangoautomation/uidrives/web/sync_web/_customization.py +0 -14
  33. mangoautomation/uidrives/web/sync_web/_element.py +0 -240
  34. mangoautomation/uidrives/web/sync_web/_input_device.py +0 -80
  35. mangoautomation/uidrives/web/sync_web/_new_browser.py +0 -153
  36. mangoautomation/uidrives/web/sync_web/_page.py +0 -61
  37. mangoautomation-1.1.23.dist-info/METADATA +0 -34
  38. mangoautomation-1.1.23.dist-info/RECORD +0 -71
  39. {mangoautomation-1.1.23.dist-info → mangoautomation-1.1.25.dist-info/licenses}/LICENSE +0 -0
  40. {mangoautomation-1.1.23.dist-info → mangoautomation-1.1.25.dist-info}/top_level.txt +0 -0
@@ -1,80 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- # @Project: 芒果测试平台
3
- # @Description: # @Time : 2023-04-29 12:11
4
- # @Author : 毛鹏
5
- from mangotools.decorator import sync_method_callback
6
- from mangotools.models import MethodModel
7
- from ....tools import Meta
8
- from ....uidrives._base_data import BaseData
9
-
10
-
11
- class SyncWebDeviceInput(metaclass=Meta):
12
- """输入设备"""
13
-
14
- def __init__(self, base_data: BaseData):
15
- self.base_data = base_data
16
-
17
- @sync_method_callback('web', '输入设备', 0, [
18
- MethodModel(n='按键值', f='keyboard', p='请输入键盘名称,首字母大写', d=True)])
19
- def w_keys(self, keyboard: str):
20
- """模拟按下指定的键"""
21
- self.base_data.page.keyboard.press(str(keyboard))
22
-
23
- @sync_method_callback('web', '输入设备', 1, [
24
- MethodModel(n='y坐标', f='y', p='请输入向上滚动像素', d=True)])
25
- def w_wheel(self, y):
26
- """鼠标上下滚动像素,负数代表向上"""
27
- self.base_data.page.mouse.wheel(0, y)
28
-
29
- @sync_method_callback('web', '输入设备', 2, [
30
- MethodModel(n='x坐标', f='x', p='请输入点击的x轴', d=True), MethodModel(n='y坐标', f='y', p='请输入点击的y轴', d=True)])
31
- def w_mouse_click(self, x: float, y: float):
32
- """鼠标点击坐标"""
33
- self.base_data.page.mouse.click(x, y)
34
-
35
- @sync_method_callback('web', '输入设备', 3)
36
- def w_mouse_center(self):
37
- """鼠标移动到中间"""
38
-
39
- viewport_size = self.base_data.page.evaluate('''() => {
40
- return {
41
- width: window.innerWidth,
42
- height: window.innerHeight
43
- }
44
- }''')
45
- center_x = viewport_size['width'] / 2
46
- center_y = viewport_size['height'] / 2
47
- self.base_data.page.mouse.move(center_x, center_y)
48
-
49
- @sync_method_callback('web', '输入设备', 4)
50
- def w_mouse_center(self):
51
- """鼠标移动到中间并点击"""
52
-
53
- viewport_size = self.base_data.page.evaluate('''() => {
54
- return {
55
- width: window.innerWidth,
56
- height: window.innerHeight
57
- }
58
- }''')
59
- center_x = viewport_size['width'] / 2
60
- center_y = viewport_size['height'] / 2
61
- self.base_data.page.mouse.click(center_x, center_y)
62
-
63
- @sync_method_callback('web', '输入设备', 5, [
64
- MethodModel(n='输入文本', f='text', p='请输入键盘输入的内容', d=True)])
65
- def w_keyboard_type_text(self, text: str):
66
- """模拟人工输入文字"""
67
- self.base_data.page.keyboard.type(str(text))
68
-
69
- @sync_method_callback('web', '输入设备', 6, [
70
- MethodModel(n='输入文本', f='text', p='请输入键盘输入的内容', d=True)])
71
- def w_keyboard_insert_text(self, text: str):
72
- """直接输入文字"""
73
- self.base_data.page.keyboard.insert_text(str(text))
74
-
75
- @sync_method_callback('web', '输入设备', 7, [
76
- MethodModel(n='删除个数', f='count', p='请输入要删除字符串的个数', d=True)])
77
- def w_keyboard_delete_text(self, count: int):
78
- """删除光标左侧的字符"""
79
- for _ in range(0, int(count) + 1):
80
- self.base_data.page.keyboard.press("Backspace")
@@ -1,153 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- # @Project: 芒果测试平台
3
- # @Description:
4
- # @Time : 2024-05-23 15:04
5
- # @Author : 毛鹏
6
- # -*- coding: utf-8 -*-
7
- # @Project: 芒果测试平台
8
- # @Description:
9
- # @Time : 2024-04-24 10:43
10
- # @Author : 毛鹏
11
- import ctypes
12
- import os
13
- import string
14
- import threading
15
- import traceback
16
- from typing import Optional
17
-
18
- import time
19
- from playwright._impl._errors import Error
20
- from playwright.sync_api import sync_playwright, Page, BrowserContext, Browser, Playwright, Request, Route
21
-
22
- from ....enums import BrowserTypeEnum
23
- from ....exceptions import MangoAutomationError
24
- from ....exceptions.error_msg import ERROR_MSG_0057, ERROR_MSG_0008, ERROR_MSG_0062, ERROR_MSG_0009, ERROR_MSG_0055
25
-
26
-
27
- class SyncWebNewBrowser:
28
-
29
- def __init__(self,
30
- web_type: int,
31
- web_path: str | None = None,
32
- web_max=False,
33
- web_headers=False,
34
- web_recording=False,
35
- web_h5=None,
36
- is_header_intercept=False,
37
- web_is_default=False,
38
- videos_path=None,
39
- log=None,
40
- ):
41
- self.lock = threading.Lock()
42
- self.web_type = web_type
43
- self.web_path = web_path
44
- self.web_max = web_max
45
- self.web_headers = web_headers
46
- self.web_recording = web_recording
47
- self.web_h5 = web_h5
48
- self.web_is_default = web_is_default
49
- self.videos_path = videos_path
50
- self.is_header_intercept = is_header_intercept
51
- self.log = log
52
- self.browser_path = ['chrome.exe', 'msedge.exe', 'firefox.exe', '苹果', '360se.exe']
53
- self.browser: Optional[None | Browser] = None
54
- self.playwright: Optional[None | Playwright] = None
55
-
56
- def new_web_page(self, count=0) -> tuple[BrowserContext, Page]:
57
- if self.browser is None:
58
- with self.lock:
59
- if self.browser is None:
60
- self.browser = self.new_browser()
61
- time.sleep(1)
62
- try:
63
- context = self.new_context()
64
- page = self.new_page(context)
65
- return context, page
66
- except Exception:
67
- self.log.error(f'初始化page失败,错误信息:{traceback.format_exc()}')
68
- self.browser = None
69
- if count >= 3:
70
- raise MangoAutomationError(*ERROR_MSG_0057)
71
- else:
72
- return self.new_web_page(count=count + 1)
73
-
74
- def new_browser(self) -> Browser:
75
- self.playwright = sync_playwright().start()
76
- if self.web_type == BrowserTypeEnum.CHROMIUM.value or self.web_type == BrowserTypeEnum.EDGE.value:
77
- browser = self.playwright.chromium
78
- elif self.web_type == BrowserTypeEnum.FIREFOX.value:
79
- browser = self.playwright.firefox
80
- elif self.web_type == BrowserTypeEnum.WEBKIT.value:
81
- browser = self.playwright.webkit
82
- else:
83
- raise MangoAutomationError(*ERROR_MSG_0008)
84
- if self.web_is_default:
85
- try:
86
- return browser.launch()
87
- except Error as error:
88
- self.log.error(f'初始化浏览器失败-1,类型:{error},详情:{traceback.format_exc()}')
89
- raise MangoAutomationError(*ERROR_MSG_0062)
90
- else:
91
- try:
92
- if self.web_max:
93
- return browser.launch(
94
- headless=self.web_headers,
95
- executable_path=self.web_path if self.web_path else self.__search_path(),
96
- args=['--start-maximized']
97
- )
98
- else:
99
- return browser.launch(
100
- headless=self.web_headers,
101
- executable_path=self.web_path if self.web_path else self.__search_path()
102
- )
103
- except Error as error:
104
- self.log.error(f'初始化浏览器失败-2,类型:{error},详情:{traceback.format_exc()}')
105
- raise MangoAutomationError(*ERROR_MSG_0009, value=(self.web_path,))
106
-
107
- def new_context(self) -> BrowserContext:
108
- args_dict = {'ignore_https_errors': True}
109
- if self.web_is_default:
110
- args_dict["viewport"] = {"width": 1920, "height": 1080}
111
- if self.web_h5:
112
- args_dict.update(self.playwright.devices[self.web_h5])
113
- if not (self.web_is_default or self.web_h5):
114
- args_dict["no_viewport"] = True
115
- if self.web_recording and self.videos_path:
116
- args_dict["record_video_dir"] = self.videos_path
117
- context = self.browser.new_context(**args_dict)
118
- context.set_default_timeout(3000)
119
- return context
120
-
121
- def new_page(self, context: BrowserContext) -> Page:
122
- try:
123
- page = context.new_page()
124
- page.set_default_timeout(3000)
125
- if self.is_header_intercept:
126
- page.route("**/*", self.wen_intercept_request) # 应用拦截函数到页面的所有请求
127
- return page
128
- except Error as error:
129
- self.log.error(f'初始化page失败,类型:{error},详情:{traceback.format_exc()}')
130
- raise MangoAutomationError(*ERROR_MSG_0009, value=(self.web_path,))
131
-
132
- def close(self):
133
- if self.browser:
134
- self.browser.close()
135
-
136
- def __search_path(self, ):
137
- drives = []
138
- for letter in string.ascii_uppercase:
139
- drive = f"{letter}:\\"
140
- if ctypes.windll.kernel32.GetDriveTypeW(drive) == 3:
141
- drives.append(drive)
142
- for i in drives:
143
- for root, dirs, files in os.walk(i):
144
- if self.browser_path[self.web_type] in files:
145
- return os.path.join(root, self.browser_path[self.web_type])
146
-
147
- raise MangoAutomationError(*ERROR_MSG_0055)
148
-
149
- def wen_intercept_request(self, route: Route, request: Request):
150
- pass
151
-
152
- def wen_recording_api(self, request: Request, project_product: int):
153
- pass
@@ -1,61 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- # @Project: 芒果测试平台
3
- # @Description: # @Time : 2023-04-25 22:33
4
- # @Author : 毛鹏
5
- import time
6
- from playwright.sync_api import Locator
7
-
8
- from mangotools.decorator import sync_method_callback
9
- from mangotools.models import MethodModel
10
- from ....tools import Meta
11
- from ....uidrives._base_data import BaseData
12
-
13
-
14
- class SyncWebPage(metaclass=Meta):
15
- """页面操作"""
16
-
17
- def __init__(self, base_data: BaseData):
18
- self.base_data = base_data
19
-
20
- @sync_method_callback('web', '页面操作', 0, [
21
- MethodModel(n='页签下标', f='individual', p='请输入页签下标,从1开始数', d=True)])
22
- def w_switch_tabs(self, individual: int):
23
- """切换页签"""
24
- pages = self.base_data.context.pages
25
- pages[int(individual) + 1].bring_to_front()
26
- self.base_data.page = pages[int(individual) + 1]
27
- time.sleep(1)
28
-
29
- @sync_method_callback('web', '页面操作', 1)
30
- def w_close_current_tab(self):
31
- """关闭当前页签"""
32
- time.sleep(2)
33
- pages = self.base_data.context.pages
34
- pages[-1].close()
35
- self.base_data.page = pages[0]
36
-
37
- @sync_method_callback('web', '页面操作', 2, [MethodModel(f='locating')])
38
- def w_open_new_tab_and_switch(self, locating: Locator):
39
- """点击并打开新页签"""
40
- locating.click()
41
- time.sleep(2)
42
- pages = self.base_data.context.pages
43
- new_page = pages[-1]
44
- new_page.bring_to_front()
45
- self.base_data.page = new_page
46
- time.sleep(1)
47
-
48
- @sync_method_callback('web', '页面操作', 3)
49
- def w_refresh(self):
50
- """刷新页面"""
51
- self.base_data.page.reload()
52
-
53
- @sync_method_callback('web', '页面操作', 4)
54
- def w_go_back(self):
55
- """返回上一页"""
56
- self.base_data.page.go_back()
57
-
58
- @sync_method_callback('web', '页面操作', 5)
59
- def w_go_forward(self):
60
- """前进到下一页"""
61
- self.base_data.page.go_forward()
@@ -1,34 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: mangoautomation
3
- Version: 1.1.23
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.12
10
- License-File: LICENSE
11
- Requires-Dist: setuptools ==78.1.1
12
- Requires-Dist: pydantic >=2.9.2
13
- Requires-Dist: playwright ==1.43.0
14
- Requires-Dist: uiautomation >=2.0.20
15
- Requires-Dist: uiautomator2 >=3.2.5
16
- Requires-Dist: mangotools >=1.1.42
17
- Requires-Dist: adbutils ~=2.8.9
18
- Requires-Dist: uiautodev >=0.9.0
19
- Requires-Dist: beautifulsoup4 ==4.14.2
20
- Requires-Dist: openai ==2.6.1
21
-
22
- # testkit
23
-
24
- #### 介绍
25
-
26
- 测试工具
27
-
28
- #### 安装教程
29
-
30
- 1. pip install mangokit
31
-
32
- #### 使用说明
33
-
34
- 1.
@@ -1,71 +0,0 @@
1
- mangoautomation/__init__.py,sha256=JxPNVexFQvkBfh0awPNeHxQGU_gtVgYPwD5rYeuHWEk,125
2
- mangoautomation/enums/__init__.py,sha256=PnOgNttAXT64elr_Fd1ZthuAddCkm7sh4xwm9Eutm_I,373
3
- mangoautomation/enums/_base_enum.py,sha256=dpaXsdhWY08BhIzi1B1ksh_p18ZTmhWvTYhbd3n_ONQ,1176
4
- mangoautomation/enums/_ui_enum.py,sha256=mT_MfQ7TEw-BgHIqH0wXTA_yVWsaWnd3iHSHi9E0pgA,4599
5
- mangoautomation/exceptions/__init__.py,sha256=2j3ravPuzljR2Mbq8J2JLdXUzII7hzrjdVjmEc_NHJU,211
6
- mangoautomation/exceptions/_exceptions.py,sha256=BiyST1QPivpfIOuKn1gKhpXOyBv6gfip_KvlQuu8ctw,385
7
- mangoautomation/exceptions/error_msg.py,sha256=0unQ_tgrRJtVMAOXTzhQJkwO4_7lhMKAMMCfwmzQD58,5517
8
- mangoautomation/mangos/__init__.py,sha256=gEu8lVHGXm8PDTBZ1XXWNUOAbCtHb37uKQLBRYQR4rs,644
9
- mangoautomation/mangos/mangos.cp310-win_amd64.pyd,sha256=XkKi2OyGgDxX7lJQnNuJMGiL4b-vntDLwo4wAmOUdrg,1751552
10
- mangoautomation/mangos/mangos.cp312-win_amd64.pyd,sha256=5ajaOne3Kb1yNEb3Eci1bvjzKIuiJaTPfwBY3f_MK0o,1879040
11
- mangoautomation/mangos/mangos.cpython-310-darwin.so,sha256=HwZCN0lpGKdAzvygPA4O4Q_xyAd7aDcrZFUzWSqZcWI,3555568
12
- mangoautomation/mangos/mangos.cpython-310-x86_64-linux-gnu.so,sha256=EaTWB-R4yHJYfkwF0P_YMjlBKY35KTTKrDsAaKCqAZo,10465816
13
- mangoautomation/mangos/mangos.cpython-312-darwin.so,sha256=iG43WcChIPozrKK98MqBTqDlZFNxKjQSyB0CKu0mIaE,3456880
14
- mangoautomation/mangos/mangos.cpython-312-x86_64-linux-gnu.so,sha256=P1Hax5huyMm-7eeuWby9mWmTI2HW3JEA8mSvIl65aAk,10670984
15
- mangoautomation/mangos/__pycache__/__init__.cpython-310.pyc,sha256=kQcwQCOca8l62vfKIC6YKi0lEIUV3Vjnel0ox2bDbOc,608
16
- mangoautomation/models/__init__.py,sha256=wHACwBCrd9HCvmrAkTFUV3qmK9GnOa-FJFiL0kOQjME,309
17
- mangoautomation/models/_ui_model.py,sha256=nfxh_4TpOLzKKWC7c-IgMLVZY5wkTPfyS_Oh-SvsYsk,1825
18
- mangoautomation/tools/__init__.py,sha256=c3IXhoodknOukOyM6db2tXIdDRodgmUZorEAkkruQf0,282
19
- mangoautomation/tools/_mate.py,sha256=9lk_EJnAX_OyXbe5WacyHkkcEr2ScBgasl6eUnlklWA,405
20
- mangoautomation/tools/_uiautodev.py,sha256=KYYWOQ_sp91LN_zeKAuIvCqjabb2_1-VhgOg1K7cQrw,1372
21
- mangoautomation/uidrive/__init__.py,sha256=9N2DTDyLcmgxAHctBjZOb8LwdDeKQnwEOWZ9kNcM4Uw,350
22
- mangoautomation/uidrives/__init__.py,sha256=JEoWqpoDIch8JiQ7WcnuDh3Bjg0Yqo_xfkbqY5iHSa8,617
23
- mangoautomation/uidrives/_async_element.py,sha256=87BhadK9BJtcv_VzJUM3kX5sdp8b8Kk-abkU9oE3T7M,16206
24
- mangoautomation/uidrives/_base_data.py,sha256=gp9730Hd8uarRv8xARIddgMWGhaJ_RKDd_gjewwWr04,4436
25
- mangoautomation/uidrives/_driver_object.py,sha256=VnnmXO-BODhqEDmqwb2U0G5FwLRdrBKvkrLE2mwC6gs,1951
26
- mangoautomation/uidrives/_sync_element.py,sha256=TU2E7AKz0Ku4qXLEtxx-whJPJ4KLYLK_EuKgChpcedM,15906
27
- mangoautomation/uidrives/android/__init__.py,sha256=i6WjXlNq6oUZ4y79Gih_XzI9tV7du-Jrm9IAuROgSzo,5180
28
- mangoautomation/uidrives/android/_application.py,sha256=G94m53cUzzGuXxPIsvoMuFwJ5RWL_xW5HHFE0TIkrBI,2855
29
- mangoautomation/uidrives/android/_assertion.py,sha256=FH8sxJC4ZXCbVA9KFBp49Tu8LPWyO26EZYAK7cYaoYE,4350
30
- mangoautomation/uidrives/android/_customization.py,sha256=7C8j2rv2wDkNu425ooxLSDrGHr_CxJ82sXz1-64id_8,382
31
- mangoautomation/uidrives/android/_element.py,sha256=ggWEFUbrAGWPQXNvD9JpudwowwvYJrgHdrNXyytAEVw,7213
32
- mangoautomation/uidrives/android/_equipment.py,sha256=Ul61jpoVr162FIu_2QcJtqWil82ZBC-Kn7_VFQWCUsQ,5216
33
- mangoautomation/uidrives/android/_new_android.py,sha256=WldFsGm5QnJ9QVPtWxRgwCiWSX3jYObFxAPCQ5xSKyg,1636
34
- mangoautomation/uidrives/android/_page.py,sha256=IaWiN3kniv2GKfudMLRdvyaqbFLuIfGh7H0HeQrDyVA,4621
35
- mangoautomation/uidrives/ios/__init__.py,sha256=SdxI8e5AOoAb8JTaDoMkObezIluJ50nm2b6zeDHv1PI,125
36
- mangoautomation/uidrives/pc/__init__.py,sha256=Jphhspu-3AHCyDX5ZM_-DWeC9ZerWy2Omb3MOck6CI4,2210
37
- mangoautomation/uidrives/pc/assertion.py,sha256=mH25hZ2i4T8kA1F2loW_nuPJ-Hb0z1pwILTJqkwwpLA,125
38
- mangoautomation/uidrives/pc/customization.py,sha256=UkpHWFSYsu_t-GmMRDmii1Bs_Y1eKD34oZfJBFHV2Ng,240
39
- mangoautomation/uidrives/pc/element.py,sha256=OGbJHbgJPBjRjXqM-NIWUnScn7lIHoBxnrakog_s4l8,465
40
- mangoautomation/uidrives/pc/input_device.py,sha256=k-v7tRW8NkJxzcezqSIfICGRBqEdsssBeRTmtupVTU8,299
41
- mangoautomation/uidrives/pc/new_windows.py,sha256=lETHZa7cW8Z0iUShzgVTRxqivkYaOo8WIE58q_8KYfQ,2338
42
- mangoautomation/uidrives/web/__init__.py,sha256=TJyYt6EUoRfWYrV193RHpopKfixipVUp4TrhB5DoEKA,434
43
- mangoautomation/uidrives/web/_async_web.py,sha256=Uwta7cIYo-0Qe5RbaIvRSQ-IvOxCNtbH_RcIm1JNxEQ,8204
44
- mangoautomation/uidrives/web/_sync_web.py,sha256=NCF97mYWQBLsOkcEXHKbAGLYGt4rK7NSjks6PubLe_k,8049
45
- mangoautomation/uidrives/web/async_web/__init__.py,sha256=_jG4DvEbNe4EZTFEBKQhgwRxxIzrdK7APmIicFb0zMk,8379
46
- mangoautomation/uidrives/web/async_web/_assertion.py,sha256=cG8g_iFMlWcAMDyIfPTJ5lx73BpbGZV5PoAbe1uAy4Q,12821
47
- mangoautomation/uidrives/web/async_web/_browser.py,sha256=xAaawPbY-rj-HZtcy5LcWUQ_jmdN9Dj4yNUxWxXGCbQ,5421
48
- mangoautomation/uidrives/web/async_web/_customization.py,sha256=LakibDXpSc-MMxMiwDiktoFccgyiUmWxAVpMOobY9_A,347
49
- mangoautomation/uidrives/web/async_web/_element.py,sha256=fVJWBUI0C2eFYP8XhLkW2Cez2gdYP1j0PcIBVDzUEk4,10507
50
- mangoautomation/uidrives/web/async_web/_input_device.py,sha256=wd36vTwsWdq7f52HmEnAF2sNiFVwNxJ2J5bq-lcuuVk,3441
51
- mangoautomation/uidrives/web/async_web/_new_browser.py,sha256=v-OXD-uYD7XagupxSlG4g_ZBsRq_Jpo88iwE_A_Ilfs,6202
52
- mangoautomation/uidrives/web/async_web/_page.py,sha256=B1RbnPWaQWa3Sp57ue2sTgcgEr4kTgSEz0DcpA5lOug,2176
53
- mangoautomation/uidrives/web/sync_web/__init__.py,sha256=gThDpZPtCFdKrxnVYgAsj_6oha9lMed7xoU4XTsLOys,7945
54
- mangoautomation/uidrives/web/sync_web/_assertion.py,sha256=GEUGvYd3LgisMTgiinFF-Z6nWqxA4EUbvHenw7rPaW0,12595
55
- mangoautomation/uidrives/web/sync_web/_browser.py,sha256=_Z6NhhP_6N-cxak3X8yUnPzUet7b1tBpI85iAbzwoyQ,5286
56
- mangoautomation/uidrives/web/sync_web/_customization.py,sha256=Wir5CIGN6YiyVj1-D_zvSWcFuUvQMP8rJ-8boUaU1Bs,356
57
- mangoautomation/uidrives/web/sync_web/_element.py,sha256=T8Za5wTzSlPleJMz0XkRCbnqSk8OpLHMs3_TalF7xrE,10157
58
- mangoautomation/uidrives/web/sync_web/_input_device.py,sha256=SwsFi4PiS3sg45MPl_NV88nDrg4SmJ14fV8sODByQ58,3288
59
- mangoautomation/uidrives/web/sync_web/_new_browser.py,sha256=APGUFhOVAW68x-6y9tQLZJkn2utfR-PrpjgP8WE38SE,6149
60
- mangoautomation/uidrives/web/sync_web/_page.py,sha256=GbVsK7ZBcoMBnKw2VMPWy3Yt9Jqa84qxrB2Ar2d8aR8,2046
61
- tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
- tests/demo1.py,sha256=5iK5kqaMkebTk-Z4HoMnfi88CRUIBKwT8PVQXFaqgD4,736
63
- tests/get_ope.py,sha256=SVhSowMNa87hjzGhFlS0vp-t0RB9yKHOC52FsO93UG4,236
64
- tests/test_ai_element.py,sha256=k__iifxebvPPfGdRS-yzkEH80fBIlKJcZ-m3N6Xkz6Q,1437
65
- tests/test_ui_and.py,sha256=A_0pqG6s5Ts02He7P3NwuDSK3g9Q3VP1Sb_P8wq6g0Q,125
66
- tests/test_ui_web.py,sha256=RBACNYc7XdvENHzg4YElsSQlEmPVa_AyOKWTYTPXM14,2578
67
- mangoautomation-1.1.23.dist-info/LICENSE,sha256=03WP-mgFmo8ofRYDe1HVDQUEUKQZ2q6P6Q-2A4c-46A,1085
68
- mangoautomation-1.1.23.dist-info/METADATA,sha256=wbPR7Rb4WurD4bh8nDEoKhLSumkIIMM2008pk-Skvso,783
69
- mangoautomation-1.1.23.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
70
- mangoautomation-1.1.23.dist-info/top_level.txt,sha256=g-uCmjvEODG8WFbmwbGM0-G0zHntHv8ZsS0PQRaMGtE,22
71
- mangoautomation-1.1.23.dist-info/RECORD,,