*目次 [#yfa474e6]
#contents

*趣旨 [#h0b7f8f5]
Selenium の WebDriverとかいろいろ、つまるので、メモする

* pom.xml [#a48f0e3d]
pom.xmlで追加する依存関係について、それぞれ説明します。

- 1. **Selenium WebDriver** (`selenium-java`)
 <dependency>
     <groupId>org.seleniumhq.selenium</groupId>
     <artifactId>selenium-java</artifactId>
     <version>4.18.1</version>
 </dependency>

-- ブラウザの自動操作を行うためのコアライブラリ
-- ブラウザの要素の検索、クリック、入力などの操作が可能
-- 最新の4.18.1では、Chrome、Firefox、Edgeなどの主要ブラウザをサポート
-- 非同期処理の待機機能も提供

- 2. **JUnit Jupiter** (`junit-jupiter-api`, `junit-jupiter-engine`)

 <dependency>
     <groupId>org.junit.jupiter</groupId>
     <artifactId>junit-jupiter-api</artifactId>
     <version>5.10.2</version>
 </dependency>
 <dependency>
     <groupId>org.junit.jupiter</groupId>
     <artifactId>junit-jupiter-engine</artifactId>
     <version>5.10.2</version>
 </dependency>

-- Javaの標準的なテストフレームワーク
-- テストケースの記述、実行、アサーションを提供
-- `@Test`、`@BeforeEach`などのアノテーションを提供
-- テストのライフサイクル管理機能を提供
-- `junit-jupiter-api`: テスト記述用API
-- `junit-jupiter-engine`: テスト実行エンジン

- 3. **WebDriverManager** (`webdrivermanager`)

 <dependency>
     <groupId>io.github.bonigarcia</groupId>
     <artifactId>webdrivermanager</artifactId>
     <version>5.7.0</version>
 </dependency>

-- ブラウザドライバーの自動管理ツール
-- ChromeDriver、GeckoDriver(Firefox用)などを自動でダウンロード・設定
-- ブラウザバージョンに適合したドライバーを自動選択
-- 手動でのドライバー管理が不要になる

- 4. **AssertJ** (`assertj-core`)

 <dependency>
     <groupId>org.assertj</groupId>
     <artifactId>assertj-core</artifactId>
     <version>3.25.3</version>
 </dependency>

-- より流暢なアサーション記述を可能にするライブラリ
-- JUnitの標準アサーションより読みやすい文法を提供
-- 例:
   // JUnitの場合
   assertEquals(expected, actual);
   
   // AssertJの場合
   assertThat(actual).isEqualTo(expected);
   ```

- 5. **Maven Surefire Plugin** (`maven-surefire-plugin`)
 <plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-surefire-plugin</artifactId>
     <version>3.2.5</version>
 </plugin>
-- Mavenプロジェクトのテスト実行を管理するプラグイン
-- `mvn test`コマンドでテストを実行する際に使用
-- テストレポートの生成
-- テスト実行の設定(パターンによる実行するテストのフィルタ、並列実行など)

それぞれの依存関係で`<scope>test</scope>`を指定しているのは:
- これらのライブラリがテスト時のみ必要で、本番環境には不要なため
- 最終的なアプリケーションのサイズを抑制
- テストコードと本番コードの依存関係を明確に分離

これらのライブラリを組み合わせることで:
- 1. ブラウザの自動操作(Selenium)
- 2. テストケースの記述と実行(JUnit)
- 3. ドライバーの自動管理(WebDriverManager)
- 4. 読みやすいアサーション(AssertJ)
- 5. テスト実行の管理(Maven Surefire)

という一連のテスト自動化が実現できます。

*その他 [#p9d5127b]
webdriverを使いはじめたので、メモする。

http://www.storklab.com/seleniumhq.org/docs/04_webdriver_advanced.html


inputボックスに日本語を入れる

http://ykmc09.blogspot.jp/2012/10/selenium-2-webdriver-input.html


clickでとまってしまう対策

http://richtext.jp/pukiwiki/index.php?%B3%D0%BD%F1%A4%AD%2FSelenium2.0#f720d8ff

なんか、confirmボタンを無理やりスキップする、ハック術がいまのところ有効

(2013/06/18時点でchromeDriverで確認した。)



Web画面の自動テストの導入に失敗する理由とその対策

http://d.hatena.ne.jp/dkfj/20120531/1338422274

*webDriver [#mb597ca4]



ant単体で動くがJenkins通してantするとChromeWebDriverが起動しない。

なんでやねん





WebDriverのchromeとfirefoxを使ってみて思ったことがある。

それは、WebDriverの作者はfirefoxをメインで使っているだろう。ということ、

動作の安定性、速度、chromeDriverよりも勝っているのだ。



**firefoxの設定 [#zb6e6c2c]

Custom Firefox profile for Selenium

http://www.qaautomation.net/?p=45

**chromedriver.exeのオプション [#p0e02557]
http://stackoverflow.com/questions/15822803/silencing-chromedriver-exe-logging

*Selenium を使用して Web テストを自動化する [#qc848983]
http://www.ibm.com/developerworks/jp/opensource/library/os-webautoselenium/?ccy=jp&cmp=dw&cpb=dwope&cr=dwrss&csr=010612&ct=dwrss

AutoItを使って、ファイル選択の自動化について述べられています。


*seleniumIDE [#kef4e6bd]

**わかりやすいseleniumIDEの日本語の解説ページ [#tabe66b3]
http://d.hatena.ne.jp/rti7743/20090913



http://iflaglabs.jp/original7.html

Firefox のアドオンとして、配布されています。Web アプリケーションに対するユーザ操作を記録し、Selenium テストとして保存・再生します。FireFox上の操作を録画し、テストケースとして保存する機能があります。
トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS