Appium-Python-Client 6.0.3__py3-none-any.whl → 6.0.5__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.
@@ -12,6 +12,7 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ import copy
15
16
  from collections.abc import Callable
16
17
  from typing import TYPE_CHECKING, Any
17
18
 
@@ -63,6 +64,9 @@ from .mobilecommand import MobileCommand as Command
63
64
  from .switch_to import MobileSwitchTo
64
65
  from .webelement import WebElement as MobileWebElement
65
66
 
67
+ if TYPE_CHECKING:
68
+ from selenium.webdriver.common.by import By
69
+
66
70
 
67
71
  class ExtensionBase:
68
72
  """
@@ -281,10 +285,10 @@ class WebDriver(
281
285
 
282
286
  if TYPE_CHECKING:
283
287
 
284
- def find_element(self, by: str, value: str | dict | None = None) -> 'MobileWebElement': # type: ignore[override]
288
+ def find_element(self, by: str = By.ID, value: str | dict | None = None) -> 'MobileWebElement': # type: ignore[override]
285
289
  ...
286
290
 
287
- def find_elements(self, by: str, value: str | dict | None = None) -> list['MobileWebElement']: # type: ignore[override]
291
+ def find_elements(self, by: str = By.ID, value: str | dict | None = None) -> list['MobileWebElement']: # type: ignore[override]
288
292
  ...
289
293
 
290
294
  def delete_extensions(self) -> None:
@@ -318,11 +322,19 @@ class WebDriver(
318
322
  executor = f'{protocol}://{hostname}:{port}{path}'
319
323
 
320
324
  logger.debug('Updated request endpoint to %s', executor)
325
+
321
326
  # Override command executor.
327
+ # The client configuration given by a user, e.g. the read timeout, the proxy or
328
+ # the authentication credentials, must be kept as-is. Only the endpoint the client
329
+ # talks to changes, thus a copy of the current configuration is reused instead of
330
+ # building a brand-new one out of the endpoint URL.
331
+ client_config = copy.copy(self.command_executor.client_config)
332
+ client_config.remote_server_addr = executor
333
+ client_config.keep_alive = keep_alive
322
334
  if isinstance(self.command_executor, AppiumConnection): # type: ignore
323
- self.command_executor = AppiumConnection(executor, keep_alive=keep_alive)
335
+ self.command_executor = AppiumConnection(client_config=client_config)
324
336
  else:
325
- self.command_executor = RemoteConnection(executor, keep_alive=keep_alive)
337
+ self.command_executor = RemoteConnection(client_config=client_config)
326
338
  self._add_commands()
327
339
 
328
340
  # https://github.com/SeleniumHQ/selenium/blob/06fdf2966df6bca47c0ae45e8201cd30db9b9a49/py/selenium/webdriver/remote/webdriver.py#L277
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: Appium-Python-Client
3
- Version: 6.0.3
3
+ Version: 6.0.5
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
@@ -354,6 +354,10 @@ driver = webdriver.Remote(
354
354
  )
355
355
  ```
356
356
 
357
+ Only the endpoint the client talks to is replaced. The rest of the given `client_config`,
358
+ such as `timeout`, `init_args_for_pool_manager`, proxy, certificates and authentication
359
+ settings, keeps being applied to the requests sent to the direct connect endpoint.
360
+
357
361
  ## Relax SSL validation
358
362
 
359
363
  `strict_ssl` option allows you to send commands to an invalid certificate host like a self-signed one.
@@ -282,7 +282,7 @@ appium/webdriver/errorhandler.py,sha256=_aT6Qo64ARGch7evG2Uku4-l8wkDaM1R2o06PWXx
282
282
  appium/webdriver/locator_converter.py,sha256=uUdJsX1o0E8x-StcJvO5gFFJbcRzhOmySfgPqJ0UaU4,999
283
283
  appium/webdriver/mobilecommand.py,sha256=B_okscraJMPrN4hSyetSNddkOZ0PyTzsQvBdYHHQqvM,3162
284
284
  appium/webdriver/switch_to.py,sha256=kom9MHNOdZuEG0ALDuaw27NHvtsRDnl-sy_XNAd-Rl4,1174
285
- appium/webdriver/webdriver.py,sha256=OliDZZV2Hu8IrFcRYmSIXMmz-YM43NeyYR87eMnBQfc,18035
285
+ appium/webdriver/webdriver.py,sha256=RzBoHK5Yp0pPCYTmmY1HOfnTuhdWSubOI9fgWk_9680,18621
286
286
  appium/webdriver/webelement.py,sha256=U3B2clH3lXHN_cPahNEAIsIaFWJwvrizWYTpQjnSay4,4417
287
287
  appium/webdriver/common/__init__.py,sha256=4MapoJ3p5LiP0AsHMgL2xoPTIFno4dcH1GSoxaZzv4w,623
288
288
  appium/webdriver/common/appiumby.py,sha256=1sFzgJht8v9pO0fG-uK1jgbb8zMJwfBy3LJH15OPqq8,1785
@@ -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.3.dist-info/METADATA,sha256=j-x-VpBBrCONqs8KPhEtRB74b451Kw1Nq1JkhiEpQbQ,20932
323
- appium_python_client-6.0.3.dist-info/WHEEL,sha256=zOwg4jB6zX2kU910N-cMawjivD6tO8NEWvE12je1bVk,87
324
- appium_python_client-6.0.3.dist-info/licenses/LICENSE,sha256=QxeKfXNmPWCfFyrXiwdVzMFPFMK0nlBrKhYLUoIcqhk,11384
325
- appium_python_client-6.0.3.dist-info/RECORD,,
322
+ appium_python_client-6.0.5.dist-info/METADATA,sha256=xvkoIMy_LiReV0DXPw861IN5BbUcz2sSJeD9b940T5g,21194
323
+ appium_python_client-6.0.5.dist-info/WHEEL,sha256=zOwg4jB6zX2kU910N-cMawjivD6tO8NEWvE12je1bVk,87
324
+ appium_python_client-6.0.5.dist-info/licenses/LICENSE,sha256=QxeKfXNmPWCfFyrXiwdVzMFPFMK0nlBrKhYLUoIcqhk,11384
325
+ appium_python_client-6.0.5.dist-info/RECORD,,