95
Selenium再入門 日本PHPユーザ会 鈴木則夫

Selenium 再入門

Embed Size (px)

DESCRIPTION

Selenium 再入門

Citation preview

Page 1: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 1/102

 

Selenium再入門

日本PHPユーザ会

鈴木則夫

Page 2: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 2/102

 

自己紹介

•日本

PHPユーザ会に所属

• 鈴木則夫

• twitter.com/suzuki

Page 3: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 3/102

 

自己紹介

• 日本PHPユーザ会とSelenium

• 特に関係ありません :-)

Page 4: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 4/102

自己紹介

• 自社Webアプリケーションの開発・運用

• 品質管理部署を立ち上げたは良いが

• テストの専門家ではない

• Seleniumの専門家でもない

 

Page 5: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 5/102

この発表の対象者Selenium-IDEを知って、すげーと思って、自分の操作

を記録して再生したら、あれ?うまくいかないぞ?

でも今は調べている時間がないから、後で時間が

あったら使ってみようと思ってそのままになっている人

 

Page 6: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 6/102

アジェンダ

Seleniumの紹介

Selenium-IDEでの壁

Selenium-IDEの先へ

 

Page 7: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 7/102

ソフトウェアライフサイクル

• ソフトウェアはリリースして終わり?

 

Page 8: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 8/102

特にWebサービスにおいては

リリース

リリース

リリース

 

Page 9: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 9/102

変わらないことが大切

• ソフトウェアの成長で必要なこと

• 変えたいところを変える

• その他のところは変わらない(変えない)

 

Page 10: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 10/102

Seleniumとは

Webアプリケーションのテスト自動化

 

Page 11: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 11/102

自動化が有効

• Seleniumの公式ドキュメントによると

• 頻繁なレグレッションテスト

• 開発期間内での素早いフィードバック

 

Page 12: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 12/102

自動化はいつも正しい?

• いつも自動化が正しいとは限らない

• 時間がなかったり

• UIの大きな変更が予定されていたり

 

Page 13: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 13/102

Selenium-IDE

 

Page 14: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 14/102

Selenium-IDEでの壁

• Selenium-IDEで記録→再生

• あれ?うまくいかない

 

Page 15: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 15/102

http://croogo.org/

 

Page 16: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 16/102

http://twitter.com/fahad19

http://twitter.com/makies

Croogoの作者

Croogoの日本語リソース作成

Page 17: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 17/102

Page 18: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 18/102

Page 19: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 19/102 

Page 20: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 20/102

テストシナリオ

• テストのシナリオ

• ログイン

• blogを追加

• blogを更新

• blogを削除

 

Page 21: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 21/102

シナリオ:ログイン操作

ログイン画面を表示

Username・Passwordを入力

Log Inをクリック

 

Page 22: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 22/102

シナリオ:ログイン検証

“You are logged in as Admin”

が表示されているか?

 

Page 23: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 23/102

シナリオ:blog追加操作

Blog入力画面へ移動

タイトル・Slug・Bodyを入力

Submitで保存

 

Page 24: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 24/102

シナリオ:blog追加検証

“Blog has been saved”の

メッセージが表示されて

いるか?

入力したタイトルが表示

されているか?

 

Page 25: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 25/102

シナリオ:blog編集操作

編集画面に入る

公開済タブへ移動

公開済/トップページに

表示するをクリック

Submitで保存

 

Page 26: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 26/102

シナリオ:blog編集検証

“Blog has been saved”の

メッセージが表示されて

いるか?

公開画面にBlog記事が表

示されているか?

 

Page 27: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 27/102

シナリオ:blog削除操作

削除リンクをクリックし、

Blog記事を削除する

 

Page 28: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 28/102

シナリオ:blog削除検証

ノード削除と表示される

入力したタイトルが表示

されていないか?

 

Page 29: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 29/102

Demo

• Selenium-IDEで操作を記録して保存

• ログインとBlog記事の追加を実行

 

Page 30: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 30/102

TIPS

• テストケースは小分けに

• ログインとBlog追加で2つに分ける

• 小分けにしても「テストスイート」単位

で実行できる

• テストスイートはメニューから明示的

に保存しないとダメ

 

Page 31: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 31/102

用語

• テストケース

• 操作や検証が含まれたひとつの単位

• 操作や検証を<table>で表現

• ひとつのHTMLファイル

 

Page 32: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 32/102

用語

• テストスイート

• 複数のテストケースをまとめたもの

• テストケースのHTMLファイルのリン

ク(<a>タグ)を<table>で表現

• これ自身もHTMLファイル

 

Page 33: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 33/102

Demo

• 保存したテストスイートの再生

 

Page 34: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 34/102

壁:画面遷移に失敗

Click に失敗

人間の操作スピードとマシ

ンの操作スピードに違い

ClickAndWaitに変更

 

Page 35: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 35/102

壁:Bodyに値が入らない

Bodyにも入力したはず

なのに...

 

Page 36: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 36/102

壁:Bodyに値が入らない

Firebugで対象を確認

<iframe id=”NodeBody_ifr”>

<html>

<head>

<body id=”tinymce”>

 

Page 37: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 37/102

壁:Bodyに値が入らない

• Body入力部はテキストエリアではない

• <iframe>によるインラインフレーム

• その<body>内に入力する形式

 

Page 38: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 38/102

壁:Bodyに値が入らない

• typeコマンドでは入力できない

• JavaScriptで無理やり対応する...

 

Page 39: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 39/102

壁:Bodyに値が入らない

getEvalコマンドで

 JavaScriptの実行が可能

「対象」にコードを記述

 

Page 40: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 40/102

壁:Bodyに値が入らない

• Firebugのコンソールで動作確認

document

.getElementById('NodeBody_ifr').contentWindow

.document

.getElementById('tinymce').innerHTML = 'こんにちは';

 

Page 41: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 41/102

壁:Bodyに値が入らない

 

Page 42: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 42/102

壁:Bodyに値が入らない

• Seleniumで実行するにはもう少し工夫

this.page().getDocument()

.getElementById('NodeBody_ifr').contentWindow

.document

.getElementById('tinymce').innerHTML = 'こんにちは';

 

Page 43: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 43/102

壁:Bodyに値が入らない

これでBody

へ入力できるようになった

だいぶ無理矢理な感じはあるが...

 

Page 44: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 44/102

時間の都合で

• 編集/削除は事前に用意したテスト

ケースを利用します

• ログイン、Blogの追加、編集、削除の

一連の流れが完成

 

Page 45: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 45/102

検証の追加

• ここまで作ってきたのは「操作」

•テストスイート全体の実行が失敗せず

終了すればOKではあるが...

• もう一歩進めるために、個々のテスト

ケースに検証を追加する

 

Page 46: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 46/102

検証を追加する前に

• 新規入力する「タイトル」や「Body」

の内容を変数に代入する

• その変数を使って、検証をする

 

Page 47: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 47/102

変数の利用

• 「対象」と「値」の関係がわかりにくい...

• 「値」が変数名、「対象」が代入する値

 

Page 48: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 48/102

シナリオ:ログイン検証

“You are logged in as Admin”

が表示されているか?

 

グ 検証

Page 49: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 49/102

ログイン検証

• assertTextPresent

• 「対象」の文字列が存在するか?を検証

 

リオ 追加検証

Page 50: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 50/102

シナリオ:blog追加検証

“Blog has been saved”の

メッセージが表示されて

いるか?

入力したタイトルが表示

されているか?

 

追加検証

Page 51: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 51/102

blog追加検証

• verifyTextPresent :失敗しても停止しない

• ${blog_title} : storeした変数の記述方法

 

ナリオ 編集検証

Page 52: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 52/102

シナリオ:blog編集検証

“Blog has been saved”の

メッセージが表示されて

いるか?

公開画面にBlog記事が表

示されているか?

 

編集検証

Page 53: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 53/102

blog編集検証

• 「Webサイトを見る」のリンクをクリック

• ${blog_title} / ${blog_body}の存在確認

 

シナリオ 削除検証

Page 54: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 54/102

シナリオ:blog削除検証

ノード削除と表示される

入力したタイトルが表示

されていないか?

 

削除検証

Page 55: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 55/102

blog削除検証

• assertTextNotPresent :テキストが存在しない

 

検証のまとめ

Page 56: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 56/102

検証のまとめ

• assertTextPresent

• verifyTextPresent

• テキストが存在すれば成功

• assertTextNotPresent

• verifyTextNotPresent

• テキストが存在しなければ成功

 

その他の検証

Page 57: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 57/102

その他の検証

• assertChecked

• チェックボックス/ラジオボタンが

チェックされているか?

• assertElementPresent

• 要素が存在するかどうか?

 

その他の検証

Page 58: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 58/102

その他の検証

• assertTitle

• <title>※</title>が期待値かどうか?

• assertValue

• value=”※”が期待値かどうか?

 

その他の検証

Page 59: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 59/102

その他の検証

• assertCookieByName

• 指定の名前のCookieが期待値か?

• assertMouseSpeed

• mousemoveスピードが期待値か?

 

DEMO

Page 60: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 60/102

DEMO

• 検証まで含めたテストスイートを

実行してみる

 

壁:違う場所の「編集」を

Page 61: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 61/102

壁:違う場所の「編集」を

「編集」リンクが

並んだときどうする?

 

自動生成のテストケースでは

Page 62: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 62/102

自動生成のテストケースでは

 

要素の指定方法

Page 63: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 63/102

要素の指定方法

• 「link=編集」は<a>編集</a>のこと

• 他にも指定方法がある

• id=⃝⃝ / name=⃝⃝ / css=⃝⃝

 

要素の指定方法

Page 64: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 64/102

要素の指定方法

• DOM

• dom=⃝⃝

• XPath

• xpath=//input[@value='Submit']

 

他の「編集」をクリックしたい

Page 65: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 65/102

他の 編集」をクリックしたい

link=編集

では、こちらはクリックできない!

 

リンク先をよく見ると

Page 66: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 66/102

リンク先をよく見ると

<a href=”/croogo/admin/nodes/edit/27”>

<a href=”/croogo/admin/nodes/edit/21”><a href=”/croogo/admin/nodes/edit/20”>

 

Page 67: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 67/102

IDさえ取得できれば

なんとかなりそう

 

指定タイトルのIDを取得

Page 68: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 68/102

指定タイトルのIDを取得

• 取得方法

• コンテンツ一覧のテーブルを特定

• 指定タイトルの行を特定

• 行のID列から値を取得

 

指定タイトルのIDを取得

Page 69: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 69/102

指定タイトルのIDを取得

• 他のテストケースでも使えるように、

ユーザ拡張として作成してみる

 

ユーザ拡張

Page 70: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 70/102

ユ ザ拡張

• user-extentions.js

• 独自の JavaScriptが追加できる

 

指定タイトルのIDを取得

Page 71: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 71/102

指定タイトルのIDを取得

• 取得方法

• コンテンツ一覧のテーブルを特定

• 指定タイトルの行を特定

• 行のID列から値を取得

Page 72: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 72/102

 

実装(前半)

Page 73: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 73/102

実装(前半)

function getIdFromContentTitle(title) {

var id = 0;

var doc = selenium.page().getDocument();var form = doc.getElementById('NodeAddForm');

var table = form.getElementsByTagName('table');

var tbody = table[0].getElementsByTagName('tbody');

var tr = tbody[0].getElementsByTagName('tr');

 

 

実装(後半)

Page 74: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 74/102

実装(後半)

for (y = 1; y < tr.length; ++y) {

var td = tr[y].getElementsByTagName('td');

var text = td[2].getElementsByTagName('a')[0].innerHTML;

if (text == title) {id = td[1].innerHTML;

break;

}

}

return id;

}

 

ユーザ拡張の利用

Page 75: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 75/102

ザ拡張 利用

 

ユーザ拡張の利用

Page 76: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 76/102

ザ拡張 利用

echoはログに書き出すコマンド

 

user-extentionsのポイント

Page 77: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 77/102

function getIdFromContentTitle(title) {

var id = 0;

var doc = selenium .page().getDocument();var form = doc.getElementById('NodeAddForm');

var table = form.getElementsByTagName('table');

var tbody = table[0].getElementsByTagName('tbody');

var tr = tbody[0].getElementsByTagName('tr');

 

 

user-extentionsのポイント

Page 78: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 78/102

var doc = selenium .page().getDocument();

 

Page 79: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 79/102

this.page().getDocument()

ユーザ拡張

selenium.page().getDocument()

selenium内部

どちらもテスト対象の

documentを指し示す

 

XPath

Page 80: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 80/102

• //input[@value=”Submit”]

• valueに「Submit」という値を持つ

<input>の意味

 

XPathの探し方

Page 81: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 81/102

• Firebugの要素の調査機能を使う

• XPathを調べたい要素をクリック

 

XPathの探し方

Page 82: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 82/102

• FirebugがHTMLソースのポイントを特

定してくれるので、そこで右クリック

 

XPathの探し方

Page 83: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 83/102

• XPathをコピー

 

XPathの探し方

Page 84: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 84/102

• コンソール等に貼りつけると

XPathが分かる

 

XPathの探し方

Page 85: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 85/102

• コンソール等に貼りつけると

XPathが分かる

• //input[@value=”Submit”]と違う?

• 絶対パスと相対パスの違いに似ている

 

XPathの探し方

Page 86: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 86/102

• XPathが正しいかどうかもFirebugで検証可能

• $x(“ XPath “)

 

XPathの探し方

Page 87: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 87/102

• コンソールの「実行」をクリック

• 左側のウインドウに結果が表示される

 

XPathの探し方

Page 88: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 88/102

• 結果をクリックするとその要素が強調される

 

Selenium-IDEの先へ

Page 89: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 89/102

• エクスポート機能でSelenium-RCへ

• プログラミング言語で実行することに

より「繰り返し処理」の記述が楽に

 

エクスポートの罠

Page 90: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 90/102

• すべてのテストケースを「正しく」

プログラミング言語へエクスポートで

きるわけではなさそう

 

PHP用にエクスポート

Page 91: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 91/102

function testMyTestCase() {

// 変数定義

blog_title = "こんにちは、北海道";

blog_slug = "hellow_hokkaido"; 

blog_body = "北海道の冬は寒いのでしょうか?

";}

 

エクスポートの書式変更

Page 92: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 92/102

• Selenium-IDEの設定変更すれば可能

• オプション→設定...→フォーマット

• PHP→ソース

• オリジナルのソースは編集不可

• コピーして別名で保存

 

実際のコード

Page 93: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 93/102

• ごめんなさい、まだ勉強中です :-)

 

Selenium AES

Page 94: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 94/102

• Selenium Auto Exec Server• http://www.enjoyxstudy.com/selenium/autoexec/

 

Selenium AES

Page 95: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 95/102

• テストスイートを毎日定時実行

• 実行結果をメールで報告

• Subversionと連携

• 最新のソースをリポジトリから落とし、

テスト実行が可能

 

まとめ

Page 96: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 96/102

• Seleniumは非常に強力なツール

• 「変わらないこと」のチェックが

安心につながる

• 積極的に使っていきましょう

• そして私にも情報をください :-)

 

まとめ

Page 97: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 97/102

 

Page 98: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 98/102

表紙には目立つように書か

れていないがSeleniumの章

がある

 

参考サイト

Page 99: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 99/102

• Seleniumリファレンスガイド(日本語版)

http://wiki.openqa.org/display/SEL/Selenium+0.7+Reference+(Japanese)

• Selenium中級者になろう 

(変数+XPath+ JavaScriptを,テストケース中で利用する方法)

http://d.hatena.ne.jp/language_and_engineering/20090818

• その他多数のサイトを参考にさせて頂きました

 

Photograph Credits

Page 100: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 100/102

• 表紙

http://www.flickr.com/photos/jonbro/3356460039/

• 対象者http://www.flickr.com/photos/elvire-r/2451784799/

• アジェンダ

http://www.flickr.com/photos/citycaucus/4260121599/

 

Photograph Credits

Page 101: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 101/102

• サボテン

http://www.flickr.com/photos/racatumba/88846892/http://www.flickr.com/photos/laszlo-photo/286757494/

• JEDIhttp://www.flickr.com/photos/ggunter/539625103/

 

謝辞

Page 102: Selenium 再入門

5/7/2018 Selenium ��� - slidepdf.com

http://slidepdf.com/reader/full/selenium--559aba95a2a23 102/102

• ご清聴ありがとうございました