LoginSignup
2
0

More than 5 years have passed since last update.

Selenium2はfancyBoxにも対応している!

Posted at

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対応の方法をとります。

FancyBox.java
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、見た目にはわからない変化にも弱いのです( ;∀;)

短くなりましたが、今回はここまでです。
次回はダウンロードに関して記述します!!Σ(゚Д゚)

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0