google chrome on android を自動実行
TRANSCRIPT
![Page 1: Google Chrome on Android を自動実行](https://reader033.vdocuments.site/reader033/viewer/2022050721/55c7ae52bb61eb9f7f8b479b/html5/thumbnails/1.jpg)
Google Chrome on Androidを自動実行
東平洋史
![Page 2: Google Chrome on Android を自動実行](https://reader033.vdocuments.site/reader033/viewer/2022050721/55c7ae52bb61eb9f7f8b479b/html5/thumbnails/2.jpg)
用意するハードウェア
• 自動実行プログラムを実行するパソコン
– Mac, Windows, Linux
• Android の端末
• パソコンとAndroidを繋ぐUSB通信ケーブル
Android
![Page 3: Google Chrome on Android を自動実行](https://reader033.vdocuments.site/reader033/viewer/2022050721/55c7ae52bb61eb9f7f8b479b/html5/thumbnails/3.jpg)
用意するソフトウェア(パソコン)
• 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 を自動実行](https://reader033.vdocuments.site/reader033/viewer/2022050721/55c7ae52bb61eb9f7f8b479b/html5/thumbnails/4.jpg)
ここで実習
![Page 5: Google Chrome on Android を自動実行](https://reader033.vdocuments.site/reader033/viewer/2022050721/55c7ae52bb61eb9f7f8b479b/html5/thumbnails/5.jpg)
実習内容
次のテストを行なうスクリプトの作成
1. Googleで「小江戸らぐ」を検索
2. 次のページを表示OSS支える!コミュニティー訪問~小江戸らぐ-川越を中心にゆるく活動するLinuxユーザー会
3. 写真をクリックして拡大表示
![Page 6: Google Chrome on Android を自動実行](https://reader033.vdocuments.site/reader033/viewer/2022050721/55c7ae52bb61eb9f7f8b479b/html5/thumbnails/6.jpg)
おおまかな手順
• Android端末
1. USBデバッグを有効にする
• パソコン
1. Android SDK Toolsをインストール
2. Anddoid SDK Tools関係の環境変数設定
3. Android端末をパソコンに接続
4. Chrome Driver を起動 or 起動設定
5. プログラムを実行
![Page 7: Google Chrome on Android を自動実行](https://reader033.vdocuments.site/reader033/viewer/2022050721/55c7ae52bb61eb9f7f8b479b/html5/thumbnails/7.jpg)
USBデバッグを有効にする(Android)
1. (Android 4.2以降の場合)[開発者向けオプ
ション]がデフォルトで非表示になっているため、次のようにして表示させる。
1. [設定|<デバイス種別>情報]を開く
2. [ビルド番号]を 7 回タップする。
2. [開発者向けオプション]の[USB デバッグ]オプションをオンにする
![Page 8: Google Chrome on Android を自動実行](https://reader033.vdocuments.site/reader033/viewer/2022050721/55c7ae52bb61eb9f7f8b479b/html5/thumbnails/8.jpg)
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 を自動実行](https://reader033.vdocuments.site/reader033/viewer/2022050721/55c7ae52bb61eb9f7f8b479b/html5/thumbnails/9.jpg)
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 を自動実行](https://reader033.vdocuments.site/reader033/viewer/2022050721/55c7ae52bb61eb9f7f8b479b/html5/thumbnails/10.jpg)
Android端末をパソコンに接続
1. USB通信ケーブルで結線
2. パソコンでUSBドライバを認識させる
3. Android SDK Toolsのadbコマンドで接続確認
% adb devicesList of devices attachedEP73216535 device
![Page 11: Google Chrome on Android を自動実行](https://reader033.vdocuments.site/reader033/viewer/2022050721/55c7ae52bb61eb9f7f8b479b/html5/thumbnails/11.jpg)
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 を自動実行](https://reader033.vdocuments.site/reader033/viewer/2022050721/55c7ae52bb61eb9f7f8b479b/html5/thumbnails/12.jpg)
テストスクリプトから呼び出す
1. DesiredCapabilitiesクラスのインスタンス生成
2. インスタンスの属性設定ChromeOptionsとして{'androidPackage': 'com.android.chrome'}を指定
3. RemoteWebDriverクラスを使用してWebDriver生成
![Page 13: Google Chrome on Android を自動実行](https://reader033.vdocuments.site/reader033/viewer/2022050721/55c7ae52bb61eb9f7f8b479b/html5/thumbnails/13.jpg)
Pythonで呼び出す
capabilities ={'chromeOptions':
{'androidPackage': 'com.android.chrome',}}
driver = webdriver.Remote(
‘http://Androidを繋いだマシン:9515/wd/hub',
capabilities)
![Page 14: Google Chrome on Android を自動実行](https://reader033.vdocuments.site/reader033/viewer/2022050721/55c7ae52bb61eb9f7f8b479b/html5/thumbnails/14.jpg)
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 を自動実行](https://reader033.vdocuments.site/reader033/viewer/2022050721/55c7ae52bb61eb9f7f8b479b/html5/thumbnails/15.jpg)
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 を自動実行](https://reader033.vdocuments.site/reader033/viewer/2022050721/55c7ae52bb61eb9f7f8b479b/html5/thumbnails/16.jpg)
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 を自動実行](https://reader033.vdocuments.site/reader033/viewer/2022050721/55c7ae52bb61eb9f7f8b479b/html5/thumbnails/17.jpg)
おまけ
![Page 18: Google Chrome on Android を自動実行](https://reader033.vdocuments.site/reader033/viewer/2022050721/55c7ae52bb61eb9f7f8b479b/html5/thumbnails/18.jpg)
SeleniumGrid で遠隔操作
![Page 19: Google Chrome on Android を自動実行](https://reader033.vdocuments.site/reader033/viewer/2022050721/55c7ae52bb61eb9f7f8b479b/html5/thumbnails/19.jpg)
その構成
Selenium Grid Server (Hub)
Linux
Grid (node)
テストスクリプト
Windows
Android
![Page 20: Google Chrome on Android を自動実行](https://reader033.vdocuments.site/reader033/viewer/2022050721/55c7ae52bb61eb9f7f8b479b/html5/thumbnails/20.jpg)
Selenium Grid Nodeの設定
{“capabilities”:[ {"androidPackage": "com.android.chrome",
“platform”: "WINDOWS",
“browserName”: "chrome",“maxInstances”: 1,“version”: “Android",“seleniumProtocol”: “WebDriver“
},…
],}
![Page 21: Google Chrome on Android を自動実行](https://reader033.vdocuments.site/reader033/viewer/2022050721/55c7ae52bb61eb9f7f8b479b/html5/thumbnails/21.jpg)
テストスクリプトから呼び出す
1. DesiredCapabilitiesクラスのインスタンス生成
2. インスタンスの属性設定
3. RemoteWebDriverクラスを使用してWebDriver生成
![Page 22: Google Chrome on Android を自動実行](https://reader033.vdocuments.site/reader033/viewer/2022050721/55c7ae52bb61eb9f7f8b479b/html5/thumbnails/22.jpg)
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 を自動実行](https://reader033.vdocuments.site/reader033/viewer/2022050721/55c7ae52bb61eb9f7f8b479b/html5/thumbnails/23.jpg)
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 を自動実行](https://reader033.vdocuments.site/reader033/viewer/2022050721/55c7ae52bb61eb9f7f8b479b/html5/thumbnails/24.jpg)
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 を自動実行](https://reader033.vdocuments.site/reader033/viewer/2022050721/55c7ae52bb61eb9f7f8b479b/html5/thumbnails/25.jpg)
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 を自動実行](https://reader033.vdocuments.site/reader033/viewer/2022050721/55c7ae52bb61eb9f7f8b479b/html5/thumbnails/26.jpg)
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 を自動実行](https://reader033.vdocuments.site/reader033/viewer/2022050721/55c7ae52bb61eb9f7f8b479b/html5/thumbnails/27.jpg)
おしまい(^.^)/~~~