Android

依存関係

ChromeDriver のバイナリは、各種ホスト用の ZIP ファイルとしてパッケージ化されている ダウンロード ページから入手できます。

対応アプリ

ChromeDriver は、Chrome ブラウザ(バージョン 30 以降)と Android 4.4(KitKat)以降の WebView ベースのアプリのうち、ウェブ デバッグJavaScript が有効になっているもの。Chrome アプリは次の場所からインストールできます。

安定版: https://play.google.com/store/apps/details?id=com.android.chrome

Selenium WebDriver 言語バインディング

テストの作成には、選択した言語用に標準の Selenium プロジェクトの WebDriver 言語バインディングをインストールする必要があります。このライブラリは、使いやすいローカル パッケージ マネージャーまたは Selenium プロジェクト(https://www.seleniumhq.org/download/)から入手できます。たとえば、Python の言語バインディングは pip を使用してインストールできます。

$ pip install selenium

Android SDK

SDK は次の場所からダウンロードできます。 developer.android.com/sdk/

デバイスの要件

Chrome バージョン 33 以降では、ユーザーに root 権限のあるデバイスは必要ありません。テストを実行する場合 以前のバージョンの Chrome では、ChromeDriver としてデバイスの root 権限を取得する必要があった Chrome のコマンドを設定するために /data/local ディレクトリへの書き込みアクセス権が必要 使用できます。

ChromeDriver を実行する

  1. Android SDK の Android Debug Bridge(adb)サーバーを起動します。

    $ adb start-server
    
  2. バージョン 33 より前の Chrome アプリでテストする場合は、adb シェルにデバイスの/data /local ディレクトリに対する読み取り/書き込みアクセス権があることを確認します。

     $ adb shell su -c chmod 777 /data/local
    
  3. ChromeDriver は、通常は Selenium ライブラリから起動することをおすすめしますが、コマンドラインから手動で起動することもできます。詳しくは、スタートガイドをご覧ください。

    $ ./chromedriver
    

Android 固有のオプション

以下の Chrome オプションは Chrome アプリと WebView アプリの両方に適用できます。

  • androidPackage: Chrome または WebView アプリのパッケージ名。
  • androidDeviceSerial: (省略可)アプリを起動するデバイスのシリアル番号(下記の「複数のデバイス」セクションをご覧ください)。
  • androidUseRunningApp: (省略可)明確なデータ ディレクトリでアプリを起動するのではなく、すでに実行中のアプリにアタッチします。

次の機能は WebView アプリにのみ適用されます。

  • androidActivity: WebView をホストするアクティビティの名前。
  • androidProcess: (省略可)WebView をホストするアクティビティのプロセス名(ps で指定します)。指定しない場合、プロセス名は androidPackage と同じとみなされます。

テストを実行

テストでは、androidPackage オプションを通じてアプリのパッケージ名を ChromeDriver に渡す必要があります。最小限の Python テストの例を次に示します。

from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_experimental_option('androidPackage', 'com.android.chrome')
driver = webdriver.Chrome('./chromedriver', options=options)
driver.get('https://google.com')
driver.quit()

複数のデバイスに対応

セッションで特定のデバイスを使用するには、次のように androidDeviceSerial を指定します。 Chrome オプション。

シリアル番号が指定されていない場合、サーバーは次の場所にある未使用のデバイスを選択します。 各セッションに関連付けることができます。すべてのデバイスでエラーが返されると、 すでにアクティブなセッションがあるため、テストでは、ユーザーが呼び出されたときに 終了です。

wd/hub に接続

テストで wd/hub に接続する場合は、--url-base=wd/hub を追加します。 次の処理が行われます。

$ ./chromedriver --url-base=wd/hub