仲介サーバー経由で Appium サーバーに到達するには、Python の HTTP コマンドチャネルを設定します:

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 はアプリケーションの既存のオプションオブジェクトです。そのデバイス/ブラウザーの機能はそのままにし、driver.quit は既存のテストライフサイクルで管理します。

AppiumClientConfig は Selenium の ClientConfig を継承します。手動選択では HTTP サーバーアドレスに http_proxy を、HTTPS アドレスに ssl_proxy を使います。ここでは HTTP 接続マネージャーを設定するため、値に URL スキームを含めます。許可された公開ルート経由で到達できる Appium エンドポイントには、これらの値として HTTP プロキシ一覧 から HTTP 候補を選びます。

セッションの内部で送信されるプロキシ機能は、リモート環境に自身のトラフィックをルーティングするよう要求します。それでは Python が先のセッション作成リクエストを送信することはできません。必要に応じてその別の経路を個別に設定してください。

この公開インターフェースを提供する互換性のある Appium/Selenium の組み合わせを使用してください。インストール済みの remote_connection モジュールにパッチを当てる方法は、この設定経路ではなく古いクライアント構成を対象としています。

関連記事