Python の Appium コマンドをプロキシ経由でルーティングする
リモートセッションを作成する接続に対して AppiumClientConfig を設定します。デバイスのプロキシ機能は後で別の接続に適用されます。
仲介サーバー経由で 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 モジュールにパッチを当てる方法は、この設定経路ではなく古いクライアント構成を対象としています。