訳者まえがき はじめに1章 WebDriverとWebElementの紹介 1.1 Seleniumの歴史 1.1.1 Selenium 1、別名Selenium Remote Control、別名 Selenium RC 1.1.2 Selenium 2、別名Selenium WebDriver、別名WebDriver 1.1.3 Selenium 1とSelenium 2との違い 1.2 Eclipseでのプロジェクトのセットアップ 1.3 WebElement 1.3.1 WebDriverでのWebElementの指定 1.3.2 WebElement上でのアクション 1.4 まとめ2章 WebDriverの高度な操作 2.1 アクション、ビルド、実行 2.1.1 マウスベースの操作 2.1.2 キーボードベースの操作 2.2 まとめ3章 WebDriverの機能 3.1 ブラウザーの機能の設定 3.2 スクリーンショットの取得 3.3 ターゲットウィンドウとiFrameの指定 3.3.1 ウィンドウの切り替え 3.3.2 フレーム間の切り替え 3.3.3 アラートの処理 3.4 ナビゲーション 3.5 WebElement群のロードの待機 3.5.1 暗黙の待ち時間 3.5.2 明示的な待ち時間 3.6 クッキーの扱い 3.7 まとめ4章 様々なWebDriver 4.1 FirefoxDriver 4.1.1 Firefoxのプロファイル 4.1.2 Firefoxのプリファレンスの処理 4.1.3 FirefoxBinary 4.2 InternetExplorerDriver 4.2.1 InternetExplorerDriverのインストール 4.2.2 インターネットエクスプローラー用の初めてのテストスクリプトの作成 4.2.3 Internet Explorer driverサービスの構築 4.2.4 IEDriverの機能 4.3 ChromeDriver 4.3.1 .ChromeDriverのインストール 4.3.2 Chrome用の初めてのテストスクリプトの作成 4.3.3 ChromeOptionsの利用 4.4 SafariDriver 4.4.1 Safari用の初めてのテストスクリプトの作成 4.5 OperaDriver 4.5.1 OperaDriverのインストール 4.5.2 Opera用の初めてのテストスクリプトの作成 4.6 まとめ5章 WebDriverのイベント 5.1 EventFiringWebDriverとEventListenerクラスの紹介 5.2 EventListernerのインスタンスの生成 5.2.1 WebDriverEventListenerの実装 5.2.2 AbstractWebDriverEventListenerの拡張 5.2.3 WebDriverのインスタンスの生成 5.2.4 EventFiringWebDriverとEventListenerのインスタンスの生成 5.2.5 EventFiringWebDriverへの EventListenerの登録 5.2.6 イベントの実行と検証 5.3 様々な WebDriverのイベントリスナー 5.3.1 .WebElementの値の変更の待ち受け 5.3.2 WebElementのクリックの待ち受け 5.3.3 WebElementの検索イベントの待ち受け 5.3.4 ブラウザーの戻るナビゲーションの待ち受け 5.3.5 ブラウザーの進むナビゲーションの待ち受け 5.3.6 ブラウザーの navigateToイベントの待ち受け 5.3.7 スクリプトの実行の待ち受け 5.3.8 例外の待ち受け 5.3.9 .EventFiringWebDriverからの EventListenerの登録解除 5.4 まとめ6章 I/Oの処理 6.1.F ileHandlerクラス 6.1.1 コピー元からコピー先のディレクトリへのファイルのコピー 6.1.2 ファイル名のサフィックスに基づくディレクトリ間のファイルコピー 6.1.3 ディレクトリの作成 6.1.4 ファイルやディレクトリの削除 6.1.5 isZipped()メソッド 6.1.6 makeExecutable()メソッド 6.1.7 makeWritable()メソッド 6.1.8 ファイルの読み取り 6.1.9 canExecute()メソッド 6.2 TemporaryFilesystemクラス 6.2.1 デフォルトの一時ファイルシステム 6.2.2 DefaultTmpFS内でのディレクトリの作成 6.2.3 一時ディレクトリの削除 6.2.4 複数のファイルの削除 6.2.5 一時ファイルシステムの変更 6.3 Zipクラス 6.3.1 ディレクトリの圧縮 6.3.2 ディレクトリの展開 6.4 まとめ7章 RemoteWebDriverとWebDriverBackedSelenium 7.1 RemoteWebDriverとは 7.1.1 RemoteWebDriverサーバー 7.1.2 RemoteWebDriverクライアント 7.1.3 RemoteWebDriverでの Firefoxの利用 7.1.4 RemoteWebDriverとInternet Explorerの利用 7.1.5 RemoteWebDriverとChromeの利用 7.1.6 スクリーンショットを取るための RemoteWebDriverの拡張 7.2 JSON wireプロトコル 7.3 独自のコードによるクライアントライブラリの置き換え 7.4 WebDriverBackedSelenium 7.5 まとめ8章 Selenium Grid 8.1 Selenium Gridとは 8.2 ハブ 8.3 ノード 8.4 Selenium Gridを使うための既存のスクリプトの修正 8.4.1 登録されていない capabilityを要求するリクエスト 8.4.2 ノードがビジーの際のリクエストのキューイング 8.4.3 capability群にマッチする2つのノードの扱い 8.5 Selenium Gridの設定 8.5.1 ノードの設定パラメータの指定 8.5.2 ハブの設定パラメータ 8.5.3 設定を行うための様々な方法 8.6 まとめ9章 PageObjectパターン 9.1 WordPress用のテストケースの作成 9.1.1 テストケース 1.. WordPressに対する新しいポストの追加 9.1.2 テストケース 2.. WordPressからのポストの削除 9.1.3 テストケース 3.. WordPressのポスト数を数える 9.2 PageObjectパターンとは 9.2.1 @FindByアノテーションの利用 9.2.2 PageFactory 9.3 PageObjectsの設計の推奨プラクティス 9.3.1 Webページをサービスプロバイダと見なす 9.3.2 暗黙のサービスを常に探す 9.3.3 PageObject内での PageObjectの利用 9.3.4 PageObjectのメソッドを、ユーザーのアクションではなく、サービスとして考える 9.3.5 WebElementの実行時の指定 9.3.6 ページ固有の細部とテストスクリプトの分離 9.4 ローダブルコンポーネント 9.5 WordPressのエンドトゥエンドのサンプル 9.5.1 全PageObjectの紹介 9.5.2 テストケースの紹介 9.6 まとめ10章 iOSとAndroidアプリケーションのテスト 10.1 様々なモバイルアプリケーションの形態 10.2 利用できるソフトウェアツール群 10.3 Appiumを使ったiOSとAndroidのテストの自動化 10.3.1 iOSアプリケーションのテストの自動化 10.3.2 Androidアプリケーションのテストの自動化 10.3.3 Appiumを動作させるための必要事項 10.3.4 Appiumのインストール 10.3.5 iOSの自動化 10.3.6 Androidの自動化 10.4 まとめ 付録A CI(継続的インテグレーション)ツールの活用 A.1 CIの必要性 A.2 Jenkins A.3 テストコードをCIに載せる準備 A.3.1 .コマンドラインからのテスト実行 A.3.2 テストコードのリポジトリ登録 A.4 Jenkinsとテスト用ブラウザーのインストール A.5 Jenkins上でのテスト実行 A.5.1 .テスト用ジョブの作成と実行 A.5.2 結果の確認 A.6 クラウドサービスを利用したテストの並列実行 A.6.1 .ローカルPCから SauceLabsでのテストを実行する A.6.2 Jenkinsで SauceLabs用のプラグインをインストールする A.6.3 .Jenkinsでジョブの設定を行う A.7 CIツールでテストを実行する際のTips A.7.1 .専用の環境 A.7.2 テストデータの制御 A.7.3 ジョブは小分けにしておく A.7.4 テスト失敗時のスクリーンショットをとる A.8 最後に 付録B PythonでのWebDriverの利用 B.1 Python用 Selenium WebDriverバインディングのインストール B.2.W ebDriverからのFirefoxの利用 B.3 .ipythonからのインタラクティブな WebDriverの利用 B.4 グリッドへの接続と、RemoteWebDriverでのスクリーンショットの取得 B.5 まとめ 索 引