これが一番柔軟に検索できる。あいさつの一覧をさがし、あいさつを自動で返してる。いうメソッドはこのクラス内で定義されているHTML要素が存在するかを返すメソッドである。デフォルトでそういうのあればいいのに何故かない。要素は、あいさつをしてくれる友達がいない人には存在しないので、何もしない実装になっている。false;}}Facebookのあいさつに関する部分のHTMLは概ね以下のとおりになっている(2011/09現在)。class="fwb">すべて表示(13)</span></a></li>全員に丁寧に心をこめてあいさつをしたいので、「すべて表示」をクリックして全員のあいさつを表示している。いうメソッドがそれを実行している。false;">pageletPokes.findElement(By.className("showAll"))で、上記「すべて表示」の要素を探し、クリックしている。Ajaxな処理なのでクリックしただけではすぐに全ての「あいさつが表示された」状態ではない。全ての「あいさつが表示された」状態は、「すべて表示」の要素が非表示になった時である。ここでは「すべて表示」要素を探す「すべて表示」要素をクリック「すべて表示」が非表示になるのを待つという処理を行なっている。メソッドを見てみよう。いうクラスが用意されている。1000)、実行し続ける。elem.isDisplayed()]は処理を実行しつづける。逆に言うと、表示されなくなったら終了する。これにより、「すべて表示」の要素が表示されなくなるまで待つことができる。用に処理を待機する方法は何パターンかあるが、こちらの記事が詳細に書かれているので参考にするとよい。リンク先の記事にもあるが、Selenium2.6以降を使っているならば、WebDriverWaitとExpectedConditionsを組み合わせる方法がおすすめである。書いてあり以下に示すので参考にしてほしい。//非表示になるまで待つ。WAIT_SECOND);wait.until(invisibilityOfElementLocated(by));}ね。こっちのほうが簡単でしょう?Ajaxを待つ基本パターンは解説したので、残りの処理は手短に解説する。returnPokesの、showAllIfNeed呼び出し以降のメソッドの説明をする。accountLaungage);}pokeCount++;}pageletPokesはすでに取得した以下の要素である。ある要素、つまり、以下のような「あいさつを返す」リンク要素を探している。rel="dialog-post">あいさつを返す</a>次に、それぞれの「あいさつを返す」要素ループをまわしpokeメソッドを呼び出し、あいさつを返している。ついては詳細解説しないが、あいさつする人数を制限する機能が実装されている。By.name("ok"));}「pokeElem.click()」で「あいさつを返す」リンクをクリックする。ダイアログが開き「あいさつをする」ボタンが出てくるはずなので、waitPresentメソッドで、ボタンの出現を待つ。waitPresentメソッドとwaitNotPresentの実装は各自確認して欲しい。「あいさつをする」ボタンが表示されたらそれをクリックする。「あいさつをする」もAjaxで、その呼出しが完了したことは、「あいさつをする」ボタンがなくなってることをwaitNotPresentメソッドを呼び出したことで確認している。あいさつをしたあと「OK」ってダイアログが出て、自動で消えるのでそれを待ってから、次の人へのあいさつが行われるようにしている。クラスについて詳細には説明しない。Byクラスのサブクラスのサンプルとして用意してある。属性で検索できるようにした。興味のあるかたは実装を覗いてみてほしい。<dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>2.6.0</version></dependency>を入れればおkそうじゃない人は、selenium-javaのzipをダウンロードしてクラスパスに含めればおk。http://code.google.com/p/selenium/downloads/listキャプチャSeleniumの利点はCSSとかデザインのチェックもできると思ってるんだよね。Webアプリケーションを実行することができる。自動テストすることができる。僕は某ブラウザゲームの自動実行ツールなどを作成したことがある。dragAndDropなどもできるので、工夫すればSeleniumにいろいろ実行させることができる。上記のようにスクリプトファイルは難しいし、xpathなどコツはいる。ふったりする必要があるだろう。Ajaxのアプリケーションの場合はテスト用に変更をマークするようなhiddenとかがあっても良いと思う。勉強会で何かを得るためにはどうすればいいか人を信頼し任せるということ浜町、人形町ランチマップ月別アーカイブはてなブログをはじめよう!Yamashiro0217さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。