Para llegar al servidor Appium a través de un intermediario, configura el canal de comandos HTTP de Python:

from appium import webdriver
from appium.webdriver.client_config import AppiumClientConfig
from selenium.webdriver.common.proxy import Proxy, ProxyType

route = Proxy()
route.proxy_type = ProxyType.MANUAL
route.http_proxy = 'http://proxy.example:8080'
route.ssl_proxy = 'http://proxy.example:8080'

config = AppiumClientConfig(
    remote_server_addr='https://appium.example',
    proxy=route,
)
driver = webdriver.Remote(
    options=device_options,
    client_config=config,
)

device_options es el objeto de opciones existente de la aplicación. Conserva sus capacidades de dispositivo/navegador y gestiona driver.quit mediante el ciclo de vida de prueba existente.

AppiumClientConfig hereda de ClientConfig de Selenium. La selección manual usa http_proxy para una dirección de servidor HTTP y ssl_proxy para una dirección HTTPS. Aquí los valores incluyen el esquema de URL porque configuran el gestor de conexiones HTTP. Para un punto de conexión de Appium accesible por una ruta pública permitida, elige un candidato HTTP de la lista de proxies HTTP para estos valores.

Una capacidad de proxy enviada dentro de la sesión pide al entorno remoto que enrute su propio tráfico. No puede ayudar a Python a enviar la petición anterior de creación de sesión. Configura esa otra ruta por separado cuando sea necesario.

Usa un par Appium/Selenium compatible que exponga esta interfaz pública. Parchear un módulo remote_connection instalado apunta a configuraciones de cliente más antiguas en lugar de a esta ruta de configuración.

Artículos relacionados