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.
- appium/options/ios/xcuitest/wda/wait_for_quiescence_option.py +1 -3
- appium/protocols/webdriver/can_find_elements.py +11 -2
- appium/webdriver/appium_service.py +3 -22
- appium/webdriver/webelement.py +5 -2
- {appium_python_client-6.0.8.dist-info → appium_python_client-6.0.10.dist-info}/METADATA +1 -1
- {appium_python_client-6.0.8.dist-info → appium_python_client-6.0.10.dist-info}/RECORD +8 -8
- {appium_python_client-6.0.8.dist-info → appium_python_client-6.0.10.dist-info}/WHEEL +1 -1
- {appium_python_client-6.0.8.dist-info → appium_python_client-6.0.10.dist-info}/licenses/LICENSE +0 -0
|
@@ -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:
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
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)
|
appium/webdriver/webelement.py
CHANGED
|
@@ -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]
|
|
@@ -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=
|
|
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=
|
|
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=
|
|
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=
|
|
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.
|
|
323
|
-
appium_python_client-6.0.
|
|
324
|
-
appium_python_client-6.0.
|
|
325
|
-
appium_python_client-6.0.
|
|
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,,
|
{appium_python_client-6.0.8.dist-info → appium_python_client-6.0.10.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|