google chrome on android を自動実行

Post on 10-Aug-2015

124 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Google Chrome on Androidを自動実行

東平洋史

用意するハードウェア

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

– Mac, Windows, Linux

• Android の端末

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

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#, …

ここで実習

実習内容

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

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

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

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

おおまかな手順

• Android端末

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

• パソコン

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

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

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

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

5. プログラムを実行

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

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

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

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

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

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

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

Android SDK Tools 環境変数の設定

• ANDROID_HOME

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

• PATH

– Android SDK Tools の場所を追加

• Mac, Linuxの場合$ANDROID_HOME/tools

• Windowsの場合%ANDROID_HOME%¥tools

Android端末をパソコンに接続

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

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

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

% adb devicesList of devices attachedEP73216535 device

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

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

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

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

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

Pythonで呼び出す

capabilities ={'chromeOptions':

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

driver = webdriver.Remote(

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

capabilities)

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)

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

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

おまけ

SeleniumGrid で遠隔操作

その構成

Selenium Grid Server (Hub)

Linux

Grid (node)

テストスクリプト

Windows

Android

Selenium Grid Nodeの設定

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

“platform”: "WINDOWS",

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

},…

],}

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

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

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

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

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

command_executor=

‘サーバのURL’,

desired_capabilities={

'chromeOptions': {

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

‘browserName’: ‘chrome’,

‘platform’: ‘WINDOWS’,

‘version’: ‘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)

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

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

Android の Google Chrome を自動実行

• 用意するハードウェア

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

– Android の端末

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

• 用意するソフトウェア

– Android SDK ToolsAndroid端末制御用

– Chrome DriverGoogle Chrome制御用

– Selenium Grid (option)

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

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

top related