google chrome on android を自動実行

27
Google Chrome on Android自動実行 東平洋史

Upload: -

Post on 10-Aug-2015

118 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Google Chrome on Android を自動実行

Google Chrome on Androidを自動実行

東平洋史

Page 2: Google Chrome on Android を自動実行

用意するハードウェア

• 自動実行プログラムを実行するパソコン

– Mac, Windows, Linux

• Android の端末

• パソコンとAndroidを繋ぐUSB通信ケーブル

Android

Page 3: Google Chrome on Android を自動実行

用意するソフトウェア(パソコン)

• Android SDK Tools…Android端末制御用http://developer.android.com/sdk/index.htmlSDK Tools Onlyで大丈夫。

• Chrome Driver…Google Chrome制御用https://sites.google.com/a/chromium.org/chromedriver/Selenium Gridからも制御可能

• Selenium WebDriverで書かれたプログラムJava, Ruby, Python, C#, …

Page 4: Google Chrome on Android を自動実行

ここで実習

Page 5: Google Chrome on Android を自動実行

実習内容

次のテストを行なうスクリプトの作成

1. Googleで「小江戸らぐ」を検索

2. 次のページを表示OSS支える!コミュニティー訪問~小江戸らぐ-川越を中心にゆるく活動するLinuxユーザー会

3. 写真をクリックして拡大表示

Page 6: Google Chrome on Android を自動実行

おおまかな手順

• Android端末

1. USBデバッグを有効にする

• パソコン

1. Android SDK Toolsをインストール

2. Anddoid SDK Tools関係の環境変数設定

3. Android端末をパソコンに接続

4. Chrome Driver を起動 or 起動設定

5. プログラムを実行

Page 7: Google Chrome on Android を自動実行

USBデバッグを有効にする(Android)

1. (Android 4.2以降の場合)[開発者向けオプ

ション]がデフォルトで非表示になっているため、次のようにして表示させる。

1. [設定|<デバイス種別>情報]を開く

2. [ビルド番号]を 7 回タップする。

2. [開発者向けオプション]の[USB デバッグ]オプションをオンにする

Page 8: Google Chrome on Android を自動実行

Android SDK Toolsのインストール(パソコン)

1. Android SDK Toolsをダウンロードするhttp://developer.android.com/sdk/index.html#OtherSDK ToolS Onlyでよい

2. Android SDK Toolsをインストールする

– 最低限必要なのは Tools と Google USB Driver

Page 9: Google Chrome on Android を自動実行

Android SDK Tools 環境変数の設定

• ANDROID_HOME

– Android SDK Tools が置かれている場所

• PATH

– Android SDK Tools の場所を追加

• Mac, Linuxの場合$ANDROID_HOME/tools

• Windowsの場合%ANDROID_HOME%¥tools

Page 10: Google Chrome on Android を自動実行

Android端末をパソコンに接続

1. USB通信ケーブルで結線

2. パソコンでUSBドライバを認識させる

3. Android SDK Toolsのadbコマンドで接続確認

% adb devicesList of devices attachedEP73216535 device

Page 11: Google Chrome on Android を自動実行

Chrome Driverを起動

1. Chrome Driverをダウンロードhttps://sites.google.com/a/chromium.org/chromedriver/

2. Chrome Driver を起動chromedriver--whitelisted-ips --url-base=wd/hub(例)C:¥Selenium¥bin¥chromedriver.exe

--whitelisted-ips --url-base=wd/hub

Page 12: Google Chrome on Android を自動実行

テストスクリプトから呼び出す

1. DesiredCapabilitiesクラスのインスタンス生成

2. インスタンスの属性設定ChromeOptionsとして{'androidPackage': 'com.android.chrome'}を指定

3. RemoteWebDriverクラスを使用してWebDriver生成

Page 13: Google Chrome on Android を自動実行

Pythonで呼び出す

capabilities ={'chromeOptions':

{'androidPackage': 'com.android.chrome',}}

driver = webdriver.Remote(

‘http://Androidを繋いだマシン:9515/wd/hub',

capabilities)

Page 14: Google Chrome on Android を自動実行

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)

Page 15: Google Chrome on Android を自動実行

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);

Page 16: Google Chrome on Android を自動実行

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);

Page 17: Google Chrome on Android を自動実行

おまけ

Page 18: Google Chrome on Android を自動実行

SeleniumGrid で遠隔操作

Page 19: Google Chrome on Android を自動実行

その構成

Selenium Grid Server (Hub)

Linux

Grid (node)

テストスクリプト

Windows

Android

Page 20: Google Chrome on Android を自動実行

Selenium Grid Nodeの設定

{“capabilities”:[ {"androidPackage": "com.android.chrome",

“platform”: "WINDOWS",

“browserName”: "chrome",“maxInstances”: 1,“version”: “Android",“seleniumProtocol”: “WebDriver“

},…

],}

Page 21: Google Chrome on Android を自動実行

テストスクリプトから呼び出す

1. DesiredCapabilitiesクラスのインスタンス生成

2. インスタンスの属性設定

3. RemoteWebDriverクラスを使用してWebDriver生成

Page 22: Google Chrome on Android を自動実行

Pythonで呼び出すdriver = webdriver.Remote(

command_executor=

‘サーバのURL’,

desired_capabilities={

'chromeOptions': {

'androidPackage': 'com.android.chrome',},

‘browserName’: ‘chrome’,

‘platform’: ‘WINDOWS’,

‘version’: ‘Android’})

Page 23: Google Chrome on Android を自動実行

Rubyで呼び出す

capabilities =

Selenium::WebDriver::Remote::Capabilities.chrome("chromeOptions" =>

{"androidPackage" => 'com.android.chrome'}

:version => “Android")

driver =

Selenium::WebDriver.for(

:remote, :url => "サーバのURL ",:desired_capabilities => capabilities)

Page 24: Google Chrome on Android を自動実行

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);

Page 25: Google Chrome on Android を自動実行

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);

Page 26: Google Chrome on Android を自動実行

Android の Google Chrome を自動実行

• 用意するハードウェア

– パソコン(Mac, Windows, Linux)

– Android の端末

– パソコンとAndroidを繋ぐUSB通信ケーブル

• 用意するソフトウェア

– Android SDK ToolsAndroid端末制御用

– Chrome DriverGoogle Chrome制御用

– Selenium Grid (option)

– Selenium WebDriverで書かれたプログラム

Page 27: Google Chrome on Android を自動実行

おしまい(^.^)/~~~