LoginSignup
2

More than 5 years have passed since last update.

SeleniumにてxlsxファイルをJavaで読み込む

Last updated at Posted at 2017-05-12

[現在時点:2017/05/12]
Selenium 3.4.0 Java環境でxlsxファイルを読み込む処理について記述します。

大まかな概要

  1. xlsxの表のタイトルとタブ名を指定したクラス作成
  2. 表の列名を変数に割り当て
  3. 各クラスを呼んで実行

さっくりと書いていく

xlsxファイルの表のタイトルとタブ名を指定する。

TestSheet.java

import java.util.List;

import net.java.amateras.xlsbeans.annotation.HorizontalRecords;
import net.java.amateras.xlsbeans.annotation.Sheet;

@Sheet(name="test")        //タブ名
public class TestSheet {
    @HorizontalRecords(tableLabel="一覧表", recordClass=TestData.class)    //表のタイトル
    public List<TestData> testDataList;
}

表の列名を変数に割り当て

TestData.java

import net.java.amateras.xlsbeans.annotation.Column;

public class TestData {
    @Column(columnName="No")
    public String no;

    @Column(columnName="TestCase")
    public String test_case;
}

各クラスを呼んで実行

GetXlsxData.java

@RunWith(Parameterized.class)
public class GetXlsxData{
    private TestData testData;        //テスト用パラメータ Excelの1レコードに該当

    //コンストラクタ
    public GetXlsxData(TestData testData){
        this.testData = testData;
    }

    @Parameters
    //エクセルからテストケース生成
    public static List<TestData[]> data() throws Exception {
        // Excelファイルの読み込み
        TestSheet sheet = new XLSBeans().load(new FileInputStream("./testCase/selenium_testlist.xlsx"), TestSheet.class, WorkbookFinder.TYPE_XSSF);
        // Parametersの設定
        List<TestData[]> list = new ArrayList<TestData[]>();
        for (TestData testData : sheet.testDataList) {
            list.add(new TestData[] { testData });
        }
        return list;            //コンストラクタへ返す:Set(TestData testData)
    }
}

かなり端折って書いてます。
@Before, @Rule, @After, @Test等無いので、自分で追加してください。

以上です。

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