robotframework-appiumwindows 0.1.2__tar.gz → 0.1.4__tar.gz

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.
Files changed (29) hide show
  1. {robotframework_appiumwindows-0.1.2 → robotframework_appiumwindows-0.1.4}/AppiumLibrary/keywords/_element.py +28 -0
  2. {robotframework_appiumwindows-0.1.2 → robotframework_appiumwindows-0.1.4}/AppiumLibrary/keywords/_powershell.py +28 -1
  3. {robotframework_appiumwindows-0.1.2 → robotframework_appiumwindows-0.1.4}/AppiumLibrary/keywords/_windows.py +4 -0
  4. {robotframework_appiumwindows-0.1.2/robotframework_appiumwindows.egg-info → robotframework_appiumwindows-0.1.4}/PKG-INFO +6 -4
  5. {robotframework_appiumwindows-0.1.2 → robotframework_appiumwindows-0.1.4}/README.md +1 -1
  6. {robotframework_appiumwindows-0.1.2 → robotframework_appiumwindows-0.1.4}/pyproject.toml +5 -3
  7. {robotframework_appiumwindows-0.1.2 → robotframework_appiumwindows-0.1.4/robotframework_appiumwindows.egg-info}/PKG-INFO +6 -4
  8. robotframework_appiumwindows-0.1.4/robotframework_appiumwindows.egg-info/requires.txt +2 -0
  9. robotframework_appiumwindows-0.1.2/robotframework_appiumwindows.egg-info/requires.txt +0 -2
  10. {robotframework_appiumwindows-0.1.2 → robotframework_appiumwindows-0.1.4}/AppiumLibrary/__init__.py +0 -0
  11. {robotframework_appiumwindows-0.1.2 → robotframework_appiumwindows-0.1.4}/AppiumLibrary/appium_path.py +0 -0
  12. {robotframework_appiumwindows-0.1.2 → robotframework_appiumwindows-0.1.4}/AppiumLibrary/keywords/__init__.py +0 -0
  13. {robotframework_appiumwindows-0.1.2 → robotframework_appiumwindows-0.1.4}/AppiumLibrary/keywords/_applicationmanagement.py +0 -0
  14. {robotframework_appiumwindows-0.1.2 → robotframework_appiumwindows-0.1.4}/AppiumLibrary/keywords/_logging.py +0 -0
  15. {robotframework_appiumwindows-0.1.2 → robotframework_appiumwindows-0.1.4}/AppiumLibrary/keywords/_runonfailure.py +0 -0
  16. {robotframework_appiumwindows-0.1.2 → robotframework_appiumwindows-0.1.4}/AppiumLibrary/keywords/_screenrecord.py +0 -0
  17. {robotframework_appiumwindows-0.1.2 → robotframework_appiumwindows-0.1.4}/AppiumLibrary/keywords/_screenshot.py +0 -0
  18. {robotframework_appiumwindows-0.1.2 → robotframework_appiumwindows-0.1.4}/AppiumLibrary/keywords/_waiting.py +0 -0
  19. {robotframework_appiumwindows-0.1.2 → robotframework_appiumwindows-0.1.4}/AppiumLibrary/keywords/keywordgroup.py +0 -0
  20. {robotframework_appiumwindows-0.1.2 → robotframework_appiumwindows-0.1.4}/AppiumLibrary/locators/__init__.py +0 -0
  21. {robotframework_appiumwindows-0.1.2 → robotframework_appiumwindows-0.1.4}/AppiumLibrary/locators/elementfinder.py +0 -0
  22. {robotframework_appiumwindows-0.1.2 → robotframework_appiumwindows-0.1.4}/AppiumLibrary/utils/__init__.py +0 -0
  23. {robotframework_appiumwindows-0.1.2 → robotframework_appiumwindows-0.1.4}/AppiumLibrary/utils/applicationcache.py +0 -0
  24. {robotframework_appiumwindows-0.1.2 → robotframework_appiumwindows-0.1.4}/AppiumLibrary/version.py +0 -0
  25. {robotframework_appiumwindows-0.1.2 → robotframework_appiumwindows-0.1.4}/LICENSE +0 -0
  26. {robotframework_appiumwindows-0.1.2 → robotframework_appiumwindows-0.1.4}/robotframework_appiumwindows.egg-info/SOURCES.txt +0 -0
  27. {robotframework_appiumwindows-0.1.2 → robotframework_appiumwindows-0.1.4}/robotframework_appiumwindows.egg-info/dependency_links.txt +0 -0
  28. {robotframework_appiumwindows-0.1.2 → robotframework_appiumwindows-0.1.4}/robotframework_appiumwindows.egg-info/top_level.txt +0 -0
  29. {robotframework_appiumwindows-0.1.2 → robotframework_appiumwindows-0.1.4}/setup.cfg +0 -0
@@ -507,6 +507,34 @@ class _ElementKeywords(KeywordGroup):
507
507
  for i in range(repeat):
508
508
  self._info(f"Click attempt {i + 1}/{repeat}")
509
509
  self.appium_click(locator, timeout=timeout, required=True)
510
+
511
+ # TODO temporary add, will remove in the future
512
+ def appium_click_until(self, locators: list, timeout=None, handle_error=True):
513
+ return self.appium_click_first_match(locators=locators, timeout=timeout, handle_error=handle_error)
514
+
515
+ def appium_click_first_match(self, locators: list, timeout=None, handle_error=True):
516
+ self._info(f"Appium Click First Match: locators='{locators}', timeout='{timeout}', handle_error='{handle_error}'")
517
+
518
+ def func():
519
+ found = False
520
+ for locator in locators:
521
+ element = self._element_find(locator, True, False)
522
+ if element:
523
+ element.click()
524
+ found = True
525
+ break
526
+
527
+ if not found:
528
+ raise Exception("Elements not found, retrying...")
529
+ return found
530
+
531
+ return self._retry(
532
+ timeout,
533
+ func,
534
+ action=f"Click until '{locators}'",
535
+ required=not handle_error,
536
+ poll_interval=None
537
+ )
510
538
 
511
539
  def appium_click_if_exist(self, locator, timeout=2):
512
540
  self._info(f"Appium Click If Exist '{locator}', timeout '{timeout}'")
@@ -70,6 +70,10 @@ class _PowershellKeywords(KeywordGroup):
70
70
 
71
71
  self.appium_execute_powershell_command(ps_command)
72
72
 
73
+ # TODO temporary add, will remove in the future
74
+ def appium_sendkeys_via_powershell(self, text: str):
75
+ self.appium_ps_sendkeys(text)
76
+
73
77
  def appium_ps_sendkeys(self, text: str):
74
78
  """
75
79
  SendKeys can found at: https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.sendkeys?view=windowsdesktop-10.0
@@ -98,6 +102,27 @@ class _PowershellKeywords(KeywordGroup):
98
102
  self._info(f'command: {ps_command}')
99
103
 
100
104
  self.appium_execute_powershell_command(ps_command)
105
+
106
+ # TODO temporary add, will remove in the future
107
+ def appium_drag_and_drop_via_powershell(
108
+ self,
109
+ start_locator=None,
110
+ end_locator=None,
111
+ x_start=0,
112
+ y_start=0,
113
+ x_end=0,
114
+ y_end=0,
115
+ button='left',
116
+ **kwargs
117
+ ):
118
+ return self.appium_ps_drag_and_drop(start_locator=start_locator,
119
+ end_locator=end_locator,
120
+ x_start=x_start,
121
+ y_start=y_start,
122
+ x_end=x_end,
123
+ y_end=y_end,
124
+ button=button,
125
+ **kwargs)
101
126
 
102
127
  def appium_ps_drag_and_drop(
103
128
  self,
@@ -125,7 +150,9 @@ class _PowershellKeywords(KeywordGroup):
125
150
  - x_end_offset / y_end_offset
126
151
  - duration_sec: total drag time in seconds (default 0.5)
127
152
  """
128
- self._info(f"Appium Ps Drag And Drop")
153
+ self._info("Appium Ps Drag And Drop")
154
+ self._info(f"start_locator='{start_locator}', end_locator='{end_locator}', x_start='{x_start}', y_start='{y_start}', x_end='{x_end}', y_end='{y_end}', button='{button}', kwargs='{kwargs}'")
155
+
129
156
  # Get actual coordinates from locators (if any)
130
157
  if start_locator:
131
158
  start_rect = self.get_element_rect(start_locator)
@@ -49,6 +49,10 @@ class _WindowsKeywords(KeywordGroup):
49
49
  def appium_sendkeys(self, text=None, **kwargs):
50
50
  self._info(f"Appium Sendkeys '{text}'")
51
51
  self._appium_keys_api(text=text, **kwargs)
52
+
53
+ # TODO: temporary add, will be removed in the future
54
+ def normalize_windows_path(self, path, sep="\\", case_normalize=False, escape_backtick=True):
55
+ return self.appium_normalize_path(path=path, sep=sep, case_normalize=case_normalize, escape_backtick=escape_backtick)
52
56
 
53
57
  def appium_normalize_path(self, path, sep="\\", case_normalize=False, escape_backtick=True):
54
58
  """Normalizes the given path.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: robotframework-appiumwindows
3
- Version: 0.1.2
3
+ Version: 0.1.4
4
4
  Summary: Robot Framework AppiumLibrary extension for Windows desktop automation using NovaWindows2 Driver instead of WinAppDriver.
5
5
  Author-email: Huy Nguyen <nguyenvanhuy0612@gmail.com>
6
6
  License: MIT
@@ -14,6 +14,8 @@ Classifier: Programming Language :: Python :: 3
14
14
  Classifier: Programming Language :: Python :: 3.10
15
15
  Classifier: Programming Language :: Python :: 3.11
16
16
  Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Classifier: Programming Language :: Python :: 3.14
17
19
  Classifier: Operating System :: Microsoft :: Windows
18
20
  Classifier: License :: OSI Approved :: MIT License
19
21
  Classifier: Intended Audience :: Developers
@@ -23,8 +25,8 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
23
25
  Requires-Python: >=3.10
24
26
  Description-Content-Type: text/markdown
25
27
  License-File: LICENSE
26
- Requires-Dist: robotframework>=7.3.2
27
- Requires-Dist: Appium-Python-Client>=5.1.1
28
+ Requires-Dist: robotframework>=7.0.0
29
+ Requires-Dist: Appium-Python-Client>=5.0.0
28
30
  Dynamic: license-file
29
31
 
30
32
  # Robot Framework AppiumLibrary for Windows
@@ -164,7 +166,7 @@ Open Windows App
164
166
  ... platformName=Windows
165
167
  ... appium:automationName=NovaWindows2
166
168
  ... appium:app=${app_id}
167
- ... appium:newCommandTimeout=300
169
+ ... appium:newCommandTimeout=20
168
170
  Open Application ${REMOTE_URL} &{capabilities}
169
171
  ```
170
172
 
@@ -135,7 +135,7 @@ Open Windows App
135
135
  ... platformName=Windows
136
136
  ... appium:automationName=NovaWindows2
137
137
  ... appium:app=${app_id}
138
- ... appium:newCommandTimeout=300
138
+ ... appium:newCommandTimeout=20
139
139
  Open Application ${REMOTE_URL} &{capabilities}
140
140
  ```
141
141
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "robotframework-appiumwindows"
7
- version = "0.1.2"
7
+ version = "0.1.4"
8
8
  description = "Robot Framework AppiumLibrary extension for Windows desktop automation using NovaWindows2 Driver instead of WinAppDriver."
9
9
  authors = [
10
10
  { name = "Huy Nguyen", email = "nguyenvanhuy0612@gmail.com" }
@@ -13,8 +13,8 @@ readme = "README.md"
13
13
  license = { text = "MIT" }
14
14
  requires-python = ">=3.10"
15
15
  dependencies = [
16
- "robotframework>=7.3.2",
17
- "Appium-Python-Client>=5.1.1"
16
+ "robotframework>=7.0.0",
17
+ "Appium-Python-Client>=5.0.0"
18
18
  ]
19
19
  classifiers = [
20
20
  "Development Status :: 3 - Alpha",
@@ -24,6 +24,8 @@ classifiers = [
24
24
  "Programming Language :: Python :: 3.10",
25
25
  "Programming Language :: Python :: 3.11",
26
26
  "Programming Language :: Python :: 3.12",
27
+ "Programming Language :: Python :: 3.13",
28
+ "Programming Language :: Python :: 3.14",
27
29
  "Operating System :: Microsoft :: Windows",
28
30
  "License :: OSI Approved :: MIT License",
29
31
  "Intended Audience :: Developers",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: robotframework-appiumwindows
3
- Version: 0.1.2
3
+ Version: 0.1.4
4
4
  Summary: Robot Framework AppiumLibrary extension for Windows desktop automation using NovaWindows2 Driver instead of WinAppDriver.
5
5
  Author-email: Huy Nguyen <nguyenvanhuy0612@gmail.com>
6
6
  License: MIT
@@ -14,6 +14,8 @@ Classifier: Programming Language :: Python :: 3
14
14
  Classifier: Programming Language :: Python :: 3.10
15
15
  Classifier: Programming Language :: Python :: 3.11
16
16
  Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Classifier: Programming Language :: Python :: 3.14
17
19
  Classifier: Operating System :: Microsoft :: Windows
18
20
  Classifier: License :: OSI Approved :: MIT License
19
21
  Classifier: Intended Audience :: Developers
@@ -23,8 +25,8 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
23
25
  Requires-Python: >=3.10
24
26
  Description-Content-Type: text/markdown
25
27
  License-File: LICENSE
26
- Requires-Dist: robotframework>=7.3.2
27
- Requires-Dist: Appium-Python-Client>=5.1.1
28
+ Requires-Dist: robotframework>=7.0.0
29
+ Requires-Dist: Appium-Python-Client>=5.0.0
28
30
  Dynamic: license-file
29
31
 
30
32
  # Robot Framework AppiumLibrary for Windows
@@ -164,7 +166,7 @@ Open Windows App
164
166
  ... platformName=Windows
165
167
  ... appium:automationName=NovaWindows2
166
168
  ... appium:app=${app_id}
167
- ... appium:newCommandTimeout=300
169
+ ... appium:newCommandTimeout=20
168
170
  Open Application ${REMOTE_URL} &{capabilities}
169
171
  ```
170
172
 
@@ -0,0 +1,2 @@
1
+ robotframework>=7.0.0
2
+ Appium-Python-Client>=5.0.0
@@ -1,2 +0,0 @@
1
- robotframework>=7.3.2
2
- Appium-Python-Client>=5.1.1