Appium-Python-Client 6.0.8__py3-none-any.whl → 6.0.10__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.
@@ -15,8 +15,6 @@
15
15
  # specific language governing permissions and limitations
16
16
  # under the License.
17
17
 
18
- from datetime import timedelta
19
-
20
18
  from appium.options.common.supports_capabilities import SupportsCapabilities
21
19
 
22
20
  WAIT_FOR_QUIESCENCE = 'waitForQuiescence'
@@ -31,7 +29,7 @@ class WaitForQuiescenceOption(SupportsCapabilities):
31
29
  return self.get_capability(WAIT_FOR_QUIESCENCE)
32
30
 
33
31
  @wait_for_quiescence.setter
34
- def wait_for_quiescence(self, value: timedelta | float) -> None:
32
+ def wait_for_quiescence(self, value: bool) -> None:
35
33
  """
36
34
  It allows to turn on/off waiting for application quiescence in WebDriverAgent,
37
35
  while performing queries. The default value is true. You can avoid this kind
@@ -15,6 +15,8 @@
15
15
  from typing import TYPE_CHECKING, Protocol, runtime_checkable
16
16
 
17
17
  if TYPE_CHECKING:
18
+ from selenium.webdriver.common.by import By
19
+
18
20
  from appium.webdriver.webelement import WebElement
19
21
 
20
22
 
@@ -27,6 +29,13 @@ class CanFindElements(Protocol):
27
29
  - find_elements(by, value): Find multiple elements
28
30
  """
29
31
 
30
- def find_element(self, by: str, value: str | dict | None = None) -> 'WebElement': ...
32
+ if TYPE_CHECKING:
33
+
34
+ def find_element(self, by: str = By.ID, value: str | dict | None = None) -> 'WebElement': ...
35
+
36
+ def find_elements(self, by: str = By.ID, value: str | dict | None = None) -> list['WebElement']: ...
37
+ else:
38
+
39
+ def find_element(self, by: str = 'id', value: str | dict | None = None) -> 'WebElement': ...
31
40
 
32
- def find_elements(self, by: str, value: str | dict | None = None) -> list['WebElement']: ...
41
+ def find_elements(self, by: str = 'id', value: str | dict | None = None) -> list['WebElement']: ...
@@ -14,6 +14,7 @@
14
14
 
15
15
  import os
16
16
  import re
17
+ import shutil
17
18
  import subprocess as sp
18
19
  import sys
19
20
  import time
@@ -224,33 +225,15 @@ def is_service_listening(url: str, timeout: float = 5, custom_validator: Callabl
224
225
  return False
225
226
 
226
227
 
227
- def find_executable(executable: str) -> str | None:
228
- path = os.environ['PATH']
229
- paths = path.split(os.pathsep)
230
- _, ext = os.path.splitext(executable)
231
- if sys.platform == 'win32' and not ext:
232
- executable = executable + '.exe'
233
-
234
- if os.path.isfile(executable):
235
- return executable
236
-
237
- for p in paths:
238
- full_path = os.path.join(p, executable)
239
- if os.path.isfile(full_path):
240
- return full_path
241
-
242
- return None
243
-
244
-
245
228
  def get_node() -> str:
246
- result = find_executable('node')
229
+ result = shutil.which('node')
247
230
  if result is None:
248
231
  raise AppiumServiceError('NodeJS main executable cannot be found. Make sure it is installed and present in PATH')
249
232
  return result
250
233
 
251
234
 
252
235
  def get_npm() -> str:
253
- result = find_executable('npm.cmd' if sys.platform == 'win32' else 'npm')
236
+ result = shutil.which('npm')
254
237
  if result is None:
255
238
  raise AppiumServiceError(
256
239
  'Node Package Manager executable cannot be found. Make sure it is installed and present in PATH'
@@ -330,8 +313,6 @@ def _make_server_url(args: list[str]) -> str:
330
313
 
331
314
 
332
315
  if __name__ == '__main__':
333
- assert find_executable('node') is not None
334
- assert find_executable('npm') is not None
335
316
  service = AppiumService()
336
317
  service.start(args=['--address', '127.0.0.1', '-p', str(DEFAULT_PORT)])
337
318
  # service.start(args=['--address', '127.0.0.1', '-p', '80'], timeout_ms=2000)
@@ -22,6 +22,9 @@ from typing_extensions import Self
22
22
 
23
23
  from .mobilecommand import MobileCommand as Command
24
24
 
25
+ if TYPE_CHECKING:
26
+ from selenium.webdriver.common.by import By
27
+
25
28
 
26
29
  class WebElement(SeleniumWebElement):
27
30
  _execute: Callable
@@ -29,10 +32,10 @@ class WebElement(SeleniumWebElement):
29
32
 
30
33
  if TYPE_CHECKING:
31
34
 
32
- def find_element(self, by: str, value: str | dict | None = None) -> Self: # type: ignore[override]
35
+ def find_element(self, by: str = By.ID, value: str | dict | None = None) -> Self: # type: ignore[override]
33
36
  ...
34
37
 
35
- def find_elements(self, by: str, value: str | dict | None = None) -> list[Self]: # type: ignore[override]
38
+ def find_elements(self, by: str = By.ID, value: str | dict | None = None) -> list[Self]: # type: ignore[override]
36
39
  ...
37
40
 
38
41
  def get_attribute(self, name: str) -> str | dict | None: # type: ignore[override]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: Appium-Python-Client
3
- Version: 6.0.8
3
+ Version: 6.0.10
4
4
  Summary: Python client for Appium
5
5
  Project-URL: Homepage, https://appium.io/
6
6
  Project-URL: Repository, https://github.com/appium/python-client
@@ -215,7 +215,7 @@ appium/options/ios/xcuitest/wda/use_preinstalled_wda_option.py,sha256=ZaZvzKdRV0
215
215
  appium/options/ios/xcuitest/wda/use_simple_build_test_option.py,sha256=Gpx3UBkZHSlHFUV_CbvSlDbj7zXCF6-4vhmLuOqKxhw,1604
216
216
  appium/options/ios/xcuitest/wda/use_xctestrun_file_option.py,sha256=5xo1cExBhxUl-iWNUQi2OwGp75mNkHDLbJLxYhSc-2o,2466
217
217
  appium/options/ios/xcuitest/wda/wait_for_idle_timeout_option.py,sha256=oSsmr2-whWGG0AV2hgzBADuLRhv6U_T014ZkUEPpl0w,2030
218
- appium/options/ios/xcuitest/wda/wait_for_quiescence_option.py,sha256=7o1-1ha3je91anuHolhf0jteOrZXk0Dm4zVYzqTs2vY,1682
218
+ appium/options/ios/xcuitest/wda/wait_for_quiescence_option.py,sha256=pEUiNUck9qUw39qGJxosf5JQSTEa5ogO8aw_6AKbtto,1637
219
219
  appium/options/ios/xcuitest/wda/wda_base_url_option.py,sha256=gOO0M6f6xWWG1RKmF7jGRGtR3osoODsMYXNJ4c2WswY,1577
220
220
  appium/options/ios/xcuitest/wda/wda_connection_timeout_option.py,sha256=Z3uO7tYeDnuy6gWQgYjjv3cLlk_jVkafR8RM_XJ72uE,1684
221
221
  appium/options/ios/xcuitest/wda/wda_eventloop_idle_delay_option.py,sha256=wsjizSEiRul0qHXRo7_ukRPAmz6D-GnER9RJ_2b9WOk,2080
@@ -269,10 +269,10 @@ appium/protocols/__init__.py,sha256=wSUl6yC2TJNla7xbHXkCfn9J1LpQs9UIx8oOs6V8kZA,
269
269
  appium/protocols/webdriver/__init__.py,sha256=wSUl6yC2TJNla7xbHXkCfn9J1LpQs9UIx8oOs6V8kZA,567
270
270
  appium/protocols/webdriver/can_execute_commands.py,sha256=l6Wq-yL-hzCek9djetnrfp8VX62Fw9o4hNcisBDUEWE,832
271
271
  appium/protocols/webdriver/can_execute_scripts.py,sha256=dMRDjreiyV3IJp7-NRUx1TjouOu34mLUa9N6qZPq3b0,962
272
- appium/protocols/webdriver/can_find_elements.py,sha256=sirq42kVaAnKMbwDDh4CoGIr8B0baEnJQEcJaDpTzmA,1175
272
+ appium/protocols/webdriver/can_find_elements.py,sha256=glM-Qpe-_KyLhZmojl6aa82B3xhEzRpJPyVQHhtOP8Q,1492
273
273
  appium/webdriver/__init__.py,sha256=oT-lIYWpqD562rbXy36HlS03pKfW48BIxqZsqt1XEm0,730
274
274
  appium/webdriver/appium_connection.py,sha256=S-CodDwQWjT-lNwyHSsGtdb4GFHxTM9BXGoOyWdMI94,2405
275
- appium/webdriver/appium_service.py,sha256=K8KUSC1n7z021PvLbTQq1uB2dJEqvGhmOVSjgVFHP3E,12760
275
+ appium/webdriver/appium_service.py,sha256=lMfbkiHQIccpqy0_kG7qtO1BbTljIJq8aYTcOQ0ErPY,12172
276
276
  appium/webdriver/applicationstate.py,sha256=zUPaMt4o4mdAtWP6FapYLJju_tqO6FmMcYFpbFz83dM,735
277
277
  appium/webdriver/client_config.py,sha256=iuVcGsBF9eGNsF_gzs8b6vZWS0iI1u7actaBGBwNrqY,1631
278
278
  appium/webdriver/clipboard_content_type.py,sha256=Tyks8xA2dqvuQGEV4iVYr-iMvB-hsQBEcu8wWBxtJ4M,661
@@ -283,7 +283,7 @@ appium/webdriver/locator_converter.py,sha256=uUdJsX1o0E8x-StcJvO5gFFJbcRzhOmySfg
283
283
  appium/webdriver/mobilecommand.py,sha256=B_okscraJMPrN4hSyetSNddkOZ0PyTzsQvBdYHHQqvM,3162
284
284
  appium/webdriver/switch_to.py,sha256=kom9MHNOdZuEG0ALDuaw27NHvtsRDnl-sy_XNAd-Rl4,1174
285
285
  appium/webdriver/webdriver.py,sha256=G0bx_EwubHhMl-Pe11TXeMDHuaHGS-quGuLD3FlqLnU,19316
286
- appium/webdriver/webelement.py,sha256=U3B2clH3lXHN_cPahNEAIsIaFWJwvrizWYTpQjnSay4,4417
286
+ appium/webdriver/webelement.py,sha256=ewBkxaZiJtmhRoKjQk317WjewansQ6tpm3JePSv1pQ4,4500
287
287
  appium/webdriver/common/__init__.py,sha256=4MapoJ3p5LiP0AsHMgL2xoPTIFno4dcH1GSoxaZzv4w,623
288
288
  appium/webdriver/common/appiumby.py,sha256=1sFzgJht8v9pO0fG-uK1jgbb8zMJwfBy3LJH15OPqq8,1785
289
289
  appium/webdriver/extensions/__init__.py,sha256=wSUl6yC2TJNla7xbHXkCfn9J1LpQs9UIx8oOs6V8kZA,567
@@ -319,7 +319,7 @@ appium/webdriver/extensions/flutter_integration/__init__.py,sha256=wSUl6yC2TJNla
319
319
  appium/webdriver/extensions/flutter_integration/flutter_commands.py,sha256=FwNqIykRyMAU8-344GTlceBOxLbS-bA9bfGX4iJpHxw,11985
320
320
  appium/webdriver/extensions/flutter_integration/flutter_finder.py,sha256=HH9vGAouJuHzp29Jam_lQGrh67PDq6MxU5Ifewf7C5w,2164
321
321
  appium/webdriver/extensions/flutter_integration/scroll_directions.py,sha256=CkOv7k21SMe-h2-EYSZ6MBKBGTRC1csQ-tuowHgMn0E,85
322
- appium_python_client-6.0.8.dist-info/METADATA,sha256=C_fosgonJczmFzQG0ZAks7xREgj_9Y6ugPVuFGqmWbg,21273
323
- appium_python_client-6.0.8.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
324
- appium_python_client-6.0.8.dist-info/licenses/LICENSE,sha256=QxeKfXNmPWCfFyrXiwdVzMFPFMK0nlBrKhYLUoIcqhk,11384
325
- appium_python_client-6.0.8.dist-info/RECORD,,
322
+ appium_python_client-6.0.10.dist-info/METADATA,sha256=DyIvFybuG5i_Ta8IvuQwr9Ayam55U59eehJzVABi4kI,21274
323
+ appium_python_client-6.0.10.dist-info/WHEEL,sha256=2iZrJkDIkeDh0k9SikKMqFuRP-ua6mb4Ir1AsER4BEw,87
324
+ appium_python_client-6.0.10.dist-info/licenses/LICENSE,sha256=QxeKfXNmPWCfFyrXiwdVzMFPFMK0nlBrKhYLUoIcqhk,11384
325
+ appium_python_client-6.0.10.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: hatchling 1.32.4
2
+ Generator: hatchling 1.33.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any