sts4でSeleniumを使ってみる

Seleniumをつかうと、結合テストを自動化した上にスクショまで取ってくれるということで、早速sts4で使ってみることにしました。

1. Seleniumとは?


Seleniumは、Webアプリケーションの自動テストやスクレイピングなどに使用されるオープンソースのツールセットです。

Webブラウザを自動操作して、Webアプリケーションのテストを行うことができます。

Seleniumには、主に以下の3つのコンポーネントが含まれています。

1.Selenium IDE

ブラウザ上で動作するツールで、GUIでテストスクリプトを作成できます。

2.Selenium WebDriver

ブラウザの自動操作を行うAPIです。多くのプログラミング言語で使用できます。

3.Selenium Grid

複数のマシンでテストを並列に実行するためのツールです。


Seleniumは、多くのプログラミング言語で使用できるため、開発者が好きな言語でテストコードを書くことができます。

また、WebアプリケーションのUIテストだけでなく、スクレイピングや自動化作業にも使用することができます。

Seleniumは、Webアプリケーションのテスト自動化において広く使用されており、多くの企業や開発者から支持されています。


今回は、Selenium WebDriverを導入します。

2. Selenium WebDriver


Selenium WebDriverはプログラミング言語(今回はjava)で自動化スクリプトを作成するためのAPIです。

2-1. Selenium WebDriverを使用する手順

1.開発に使用するプログラミング言語に応じたWebDriverのライブラリを導入する。


pom.xmlに依存関係を追加してWebDriverをダウンロードします。

 <dependency>
            <groupId>io.github.bonigarcia</groupId>
            <artifactId>webdrivermanager</artifactId>
            <version>4.4.3</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-api</artifactId>
            <version>3.141.59</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>3.141.59</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-chrome-driver</artifactId>
            <version>3.141.59</version>
        </dependency>

2.WebDriverを初期化し、対象ブラウザ(今回

2-2. WebDriverの代表的なメソッド

WebDriverには多くのメソッドがありますが、以下に代表的なものをいくつか示します。

・get(String url)

指定したURLに移動する

driver.get("https://www.example.com/");

・getTitle()

現在のページのタイトルを取得する

String pageTitle = driver.getTitle();

・findElement(By selector)

指定した要素を探し、最初に見つかった要素を返す

WebElement element = driver.findElement(By.id("example_id"));

・sendKeys(CharSequence... keysToSend)

テキストボックスなどの要素にキーを入力する

WebElement element = driver.findElement(By.id("example_id"));
element.sendKeys("example text");

・click()

要素をクリックする

WebElement element = driver.findElement(By.id("example_id"));
element.click();

・getText()

要素のテキストを取得する

WebElement element = driver.findElement(By.id("example_id"));
String text = element.getText();

・isDisplayed()

要素が表示されているかどうかを判断する

WebElement element = driver.findElement(By.id("example_id"));
boolean isDisplayed = element.isDisplayed();

・submit()

フォームを送信する

WebElement element = driver.findElement(By.id("form"));
element.submit();

・getScreenshotAs(OutputType<T> outputType)

スクリーンショットを取得する

TakesScreenshot screenshotDriver = (TakesScreenshot)driver;
File screenshotFile = screenshotDriver.getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(screenshotFile, new File("screenshot.png"))

3. まとめ


今回は、googleのログイン問題やselenium3とselenium4の非互換性問題などで、うまく動かないかもしれません。

また後日リベンジしたいと思います。