Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Google Chrome on Android を自動実行

2,943 views

Published on

Android 端末上の Google Chrome をパソコンから自動実行する方法について概要を説明します。

Published in: Technology
  • Be the first to comment

Google Chrome on Android を自動実行

  1. 1. Google Chrome on Androidを 自動実行 東平洋史
  2. 2. 用意するハードウェア • 自動実行プログラムを実行するパソコン – Mac, Windows, Linux • Android の端末 • パソコンとAndroidを繋ぐUSB通信ケーブル Android
  3. 3. 用意するソフトウェア(パソコン) • Android SDK Tools…Android端末制御用 http://developer.android.com/sdk/index.html SDK Tools Onlyで大丈夫。 • Chrome Driver…Google Chrome制御用 https://sites.google.com/a/chromium.org/chr omedriver/ Selenium Gridからも制御可能 • Selenium WebDriverで書かれたプログラム Java, Ruby, Python, C#, …
  4. 4. ここで 実習
  5. 5. 実習内容 次のテストを行なうスクリプトの作成 1. Googleで「小江戸らぐ」を検索 2. 次のページを表示 OSS支える!コミュニティー訪問~小江戸らぐ - 川越を中心にゆるく活動するLinuxユー ザー会 3. 写真をクリックして拡大表示
  6. 6. おおまかな手順 • Android端末 1. USBデバッグを有効にする • パソコン 1. Android SDK Toolsをインストール 2. Anddoid SDK Tools関係の環境変数設定 3. Android端末をパソコンに接続 4. Chrome Driver を起動 or 起動設定 5. プログラムを実行
  7. 7. USBデバッグを有効にする(Android) 1. (Android 4.2以降の場合)[開発者向けオプ ション]がデフォルトで非表示になっているた め、次のようにして表示させる。 1. [設定|<デバイス種別>情報]を開く 2. [ビルド番号]を 7 回タップする。 2. [開発者向けオプション]の[USB デバッグ] オプションをオンにする
  8. 8. Android SDK Toolsのインストール (パソコン) 1. Android SDK Toolsをダウンロードする http://developer.android.com/sdk/index .html#Other SDK ToolS Onlyでよい 2. Android SDK Toolsをインストールする – 最低限必要なのは Tools と Google USB Driver
  9. 9. Android SDK Tools 環境変数の設定 • ANDROID_HOME – Android SDK Tools が置かれている場所 • PATH – Android SDK Tools の場所を追加 • Mac, Linuxの場合 $ANDROID_HOME/tools • Windowsの場合 %ANDROID_HOME%¥tools
  10. 10. Android端末をパソコンに接続 1. USB通信ケーブルで結線 2. パソコンでUSBドライバを認識させる 3. Android SDK Toolsのadbコマンドで接続確認 % adb devices List of devices attached EP73216535 device
  11. 11. Chrome Driverを起動 1. Chrome Driverをダウンロード https://sites.google.com/a/chromium.org/ch romedriver/ 2. Chrome Driver を起動 chromedriver --whitelisted-ips --url-base=wd/hub (例) C:¥Selenium¥bin¥chromedriver.exe --whitelisted-ips --url-base=wd/hub
  12. 12. テストスクリプトから呼び出す 1. DesiredCapabilitiesクラスのインス タンス生成 2. インスタンスの属性設定 ChromeOptionsとして {'androidPackage': 'com.android.chrome'}を指定 3. RemoteWebDriverクラスを使用し てWebDriver生成
  13. 13. Pythonで呼び出す capabilities = {'chromeOptions': {'androidPackage': 'com.android.chrome',}} driver = webdriver.Remote( ‘http://Androidを繋いだマシン:9515/wd/hub', capabilities)
  14. 14. Rubyで呼び出す capabilities = Selenium::WebDriver::Remote::Capabilities.chrome( "chromeOptions" => {"androidPackage" => 'com.android.chrome'}) driver = Selenium::WebDriver.for( :remote, :url => "http://Androidを繋いだマシン:9515/wd/hub", :desired_capabilities => capabilities)
  15. 15. Javaで呼び出す ChromeOptions chromeOptions = new ChromeOptions(); chromeOptions.setExperimentalOption( "androidPackage", "com.android.chrome"); capability = new DesiredCapabilities(); capability.setCapability( ChromeOptions.CAPABILITY, chromeOptions); driver = new RemoteWebDriver( new URL( “http://Androidを繋いだマシン:9515/wd/hub"), capability);
  16. 16. C#で呼び出す DesiredCapabilities capability = DesiredCapabilities.Chrome(); capability.SetCapability( "chromeOptions", new Dictionary<string, object> { { "androidPackage", "com.android.chrome" } }); IWebDriver driver = new RemoteWebDriver( new Uri("http:// Androidを繋いだマシン:9515/wd/hub"), capability);
  17. 17. おまけ
  18. 18. Selenium Grid で 遠隔操作
  19. 19. その構成 Selenium Grid Server (Hub) Linux Grid (node) テストスクリプト Windows Android
  20. 20. Selenium Grid Nodeの設定 {“capabilities”: [ {"androidPackage": "com.android.chrome", “platform”: "WINDOWS", “browserName”: "chrome", “maxInstances”: 1, “version”: “Android", “seleniumProtocol”: “WebDriver“ }, … ], }
  21. 21. テストスクリプトから呼び出す 1. DesiredCapabilitiesクラスのインス タンス生成 2. インスタンスの属性設定 3. RemoteWebDriverクラスを使用し てWebDriver生成
  22. 22. Pythonで呼び出す driver = webdriver.Remote( command_executor= ‘サーバのURL’, desired_capabilities={ 'chromeOptions': { 'androidPackage': 'com.android.chrome',}, ‘browserName’: ‘chrome’, ‘platform’: ‘WINDOWS’, ‘version’: ‘Android’})
  23. 23. Rubyで呼び出す capabilities = Selenium::WebDriver::Remote::Capabilities.chrome( "chromeOptions" => {"androidPackage" => 'com.android.chrome'} :version => “Android") driver = Selenium::WebDriver.for( :remote, :url => "サーバのURL ", :desired_capabilities => capabilities)
  24. 24. Javaで呼び出す ChromeOptions chromeOptions = new ChromeOptions(); chromeOptions.setExperimentalOption( "androidPackage", "com.android.chrome"); capability = new DesiredCapabilities(); capability.setCapability( ChromeOptions.CAPABILITY, chromeOptions); driver = new RemoteWebDriver( new URL("サーバのURL "), capability);
  25. 25. C#で呼び出す DesiredCapabilities capability = DesiredCapabilities.Chrome(); capability.SetCapability("browserName", "chrome"); capability.SetCapability("platform", "WINDOWS"); capability.SetCapability("version", "android local"); capability.SetCapability( "chromeOptions", new Dictionary<string, object> { { "androidPackage", "com.android.chrome" } }); IWebDriver driver = new RemoteWebDriver( new Uri("サーバのURL "), capability);
  26. 26. Android の Google Chrome を自動実行 • 用意するハードウェア – パソコン(Mac, Windows, Linux) – Android の端末 – パソコンとAndroidを繋ぐ USB通信ケーブル • 用意するソフトウェア – Android SDK Tools Android端末制御用 – Chrome Driver Google Chrome制御用 – Selenium Grid (option) – Selenium WebDriverで 書かれたプログラム
  27. 27. おしまい (^.^)/~~~

×