tsuttieです(*'▽')
Seleniumを使って色々としましたので、まとめていければと思ってます。
1. Selenium2を使ってみて
Webアプリのテスト自動化を目的としてSelenium2を使ったので詰まった点を数回に分けてまとめて行きたいと思います。
2. 使用したSelenium
・Selenium IDE
・Selenium Webdriver (Java 3.5.0)
※導入方法についてはわかりやすくまとめていらっしゃる方が多くおりますので、そのあたりのお話は省きます。
3. 【本題】fancyBoxで動作止まってしまう
今回は第2回ということでjQueryのfancyBoxについてお話していきたいと思います。
突然ですが、皆さんはfancyBoxはご存知でしょうか。私は知らぬ間に何度か使っていたようですが、今回Seleniumで引っかかるまで特に気にもしたことはありませんでした。
知らない方はこのページを見ることもほぼないかと思われますが、念のため参考程度に・・・
フォトギャラリー風にfancyboxを実装しよう!
(fancyBoxは↑リンクのように写真を拡大するときに使われていたりします。)
前回書きました新規タブに対応する感じでいけるのではなかろうかと思い、ハンドルを制御しましたが、うまくいかず・・・(;^ω^)
どうしようか悩みながらネットを徘徊していたところframeに対応しているとの記述を発見しました!!
結局解決方法としては、
新しいタブにハンドルを移す!
またこれだけでした。
ただし、今回はfancyBox対応の方法をとります。
package ~;
import java.io.IOException;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
public class FancyBox {
private WebDriver driver;
@Before
public void setUp() throws Exception {
System.setProperty("webdriver.gecko.driver", "./driver/geckodriver.exe");
driver = new FirefoxDriver();
}
@After
public void tearDown() throws Exception {
driver.quit();
}
@Test
public void test() throws InterruptedException {
try {
//fancyBoxを開くリンクを踏む
driver.findElement(By.id("LinkID")).click();
//ハンドルをfancyBoxへと移す
driver.switchTo().frame("fancybox-frame");
}catch(IOException e){
System.out.println(e);
}
}
}
driver.switchTo().frame("fancybox-frame");
正直これだけかい!!
といった感じですが、ここも対応できるとは思っていなかったので素直にすごいなといった感想でした。
4. まとめ
今回もハンドル操作に関する内容になってしまいました・・・
ほぼほぼ書いている操作は変わりませんが、やはりページの作りによって対応方法も微妙に変わってきますよね・・・
Selenium、見た目にはわからない変化にも弱いのです( ;∀;)
短くなりましたが、今回はここまでです。
次回はダウンロードに関して記述します!!Σ(゚Д゚)