Enruta los comandos de Appium de Python a través de un proxy
Configura AppiumClientConfig para la conexión que crea la sesión remota; las capacidades de proxy del dispositivo se aplican después a otra conexión.
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.