Appium + iOS Simulatorのメモです。実機は設定が面倒なのでシミュレータで。
インストールとかセットアップは公式のマニュアルを読むか、qiitaなどで検索すれば問題無いと思います。
使うものはこれら。
- appium
- node.js
node.jsはnpmでこれらを入れます。というか必要なものは全てnpmで入れます。
- appium
- wd
- chai
- chai-as-promised
wdはSelenium Webdriver/Appiumのnode.js bindingです。これ1個で両方対応できるので便利ですね。
テストコードはappiumのgithubにあるサンプルコードを参考にします。helpers/にあるjsファイルの読み込みはなんかはインライン展開して1ファイルにまとめてます。 これはテストのフレームワークにmochaを使ってます。
"use strict"; var wd = require("wd"); require('colors'); var chai = require("chai"); var chaiAsPromised = require("chai-as-promised"); chai.use(chaiAsPromised); var should = chai.should(); chaiAsPromised.transferPromiseness = wd.transferPromiseness; describe("ios safari", function () { this.timeout(300000); var driver; before(function () { var serverConfig = { host: 'localhost', port: 4723 }; driver = wd.promiseChainRemote(serverConfig); var desired = { browserName: 'safari', 'appium-version': '1.3', platformName: 'iOS', platformVersion: '8.3', deviceName: 'iPhone 6', app: undefined }; return driver.init(desired); }); after(function () { return driver .quit(); }); it("should get the url", function () { return driver .get('https://www.google.com') .sleep(1000) .waitForElementByName('q', 5000) .type('masami256') .waitForElementByName('btnG') .click() .waitForElementByLinkText('なんつってつっちゃった (@masami256) | Twitter') .click() .sleep(5000) .saveScreenshot('test.png'); }); });
コードはこんな感じです。いくつか見ていくと、
この部分はAppiumサーバーがどこで動いているかの設定です。npmで入れたappiumコマンドは引数なしで実行すると0.0.0.0:4723にbindするのでこのように書いても問題なしです。
var serverConfig = { host: 'localhost', port: 4723 };
次のdesiredは実行対象のOSやブラウザの指定です。mobile safariを動かす場合はappは指定しなくてOKです。 実機を使う場合はudidを指定する必要があります。ここではSimulatorで動かすので設定してません。
var desired = { browserName: 'safari', 'appium-version': '1.3', platformName: 'iOS', platformVersion: '8.3', deviceName: 'iPhone 6', // udid: 'device udid', app: undefined };
deviceNameはXcodeのWindows -> Devicesから調べるのが手っ取り早いと思います。
appium周りの設定はこれ位ですね。あとはmochaの作法に則ってテストを書いて処理はwdのマニュアルで調べる感じです。
注意点としてはSelenium IDEと違ってClick And Waitが無いので表示の待ち方は気をつけないといけないですね。
で、上のテストを実行すると実行した場所にtest.pngが作られます。
追記: wdの便利なところはserverConfigとdesiredの部分さえ切り替える仕組みを作っておけば(環境変数使うとか)PC版Webサイト・スマートフォン版Webサイト両対応させることができます( ´∀`)bグッ! 当然、css要素等が同じ必要はありますけども・・・
- 作者: Chad Fowler,でびあんぐる
- 出版社/メーカー: オーム社
- 発売日: 2010/02/26
- メディア: 単行本(ソフトカバー)
- 購入: 24人 クリック: 683回
- この商品を含むブログ (128件) を見る