Selenideのまとめ

スポンサーリンク
  1. 基本的な使い方
    1. Selenideのインストール
    2. ブラウザを開く
    3. ページ要素を見つける
    4. 要素の状態を確認する
  2. 要素の指定方法
    1. IDを使用して要素を見つける
    2. クラス名を使用して要素を見つける
    3. 名前を使用して要素を見つける
    4. リンクのテキストを使用して要素を見つける
    5. 部分的なリンクのテキストを使用して要素を見つける
    6. XPath式を使用して要素を見つける
    7. 要素内のテキストを使用して要素を見つける
    8. 要素の属性を使用して要素を見つける
    9. テキスト入力要素を使用して要素を見つける
    10. ボタン要素を使用して要素を見つける
    11. 要素の親要素を使用して要素を見つける
    12. 要素の兄弟要素を使用して要素を見つける
    13. 子要素を使用して要素を見つける
    14. テーブルのセルを使用して要素を見つける
    15. フォーム要素を使用して要素を見つける
    16. 指定した要素の後に続く要素を使用して要素を見つける
    17. 要素の中の特定の要素を使用して要素を見つける
    18. 要素の親要素から特定の要素を使用して要素を見つける
    19. 要素の位置を使用して要素を見つける
    20. 要素の属性値の一部に一致する要素を使用して要素を見つける
    21. 要素の子孫要素を使用して要素を見つける
    22. ラベル要素を使用して要素を見つける
    23. 要素の前に続く要素を使用して要素を見つける
    24. 要素のテキストを使用して要素を見つける
    25. 要素の子要素のテキストを使用して要素を見つける

基本的な使い方

Selenideは、Selenium WebDriverをより簡単に使用できるようにしたJava向けのライブラリです。
以下は、Selenideを使用してWebアプリケーションをテストするための基本的な手順です。

Selenideのインストール

Selenideを使用するには、プロジェクトにSelenideライブラリを追加する必要があります。
Mavenの場合は、pom.xmlに次の依存関係を追加します。

<dependency>
<groupId>com.codeborne</groupId>
<artifactId>selenide</artifactId>
<version>5.23.3</version>
</dependency>

ブラウザを開く

以下のように、Selenideを使用してブラウザを開きます。

import static com.codeborne.selenide.Selenide.*;
import static com.codeborne.selenide.Condition.*;

// Chromeを開く
open("https://www.google.com/");

ページ要素を見つける

Selenideは、CSSセレクターまたはXPath式を使用して、ページ上の要素を見つけることができます。

// 検索ボックスを見つける
$(By.name("q")).setValue("Selenide").pressEnter();

// リンクを見つける
$(By.linkText("Selenide: concise UI tests in Java")).click();

要素の状態を確認する

Selenideは、要素が存在するか、表示されるか、クリック可能か、テキストが一致するかなど、さまざまな状態をチェックするためのConditionクラスを提供しています。

// 要素が表示されることを確認する
$("#username").shouldBe(visible);

// 要素が存在することを確認する
$(By.name("q")).should(exist);

// 要素がクリック可能であることを確認する
$("#submit").shouldBe(enabled);

以上が、Selenideを使用してWebアプリケーションをテストするための基本的な手順です。

要素の指定方法

Selenideは、CSSセレクターまたはXPath式を使用して、ページ上の要素を見つけることができます。
以下に、Selenideで要素を指定するためのいくつかの方法をいくつか紹介します。

IDを使用して要素を見つける

// id="username"の要素を取得
$("#username")

クラス名を使用して要素を見つける

// class="form-control"の最初の要素を取得
$(".form-control")

名前を使用して要素を見つける

// name="q"の要素を取得
$(By.name("q"))

リンクのテキストを使用して要素を見つける

// テキストが "Selenide" と一致するリンクを取得
$(By.linkText("Selenide"))

部分的なリンクのテキストを使用して要素を見つける

// テキストが "Selenide" を含むリンクを取得
$(By.partialLinkText("Selenide"))

XPath式を使用して要素を見つける

// XPath式を使用して、クラス名が "form-control" の最初の input 要素を取得
$(By.xpath("//input[@class='form-control'][1]"))

要素内のテキストを使用して要素を見つける

// テキストが "Login" と一致するボタンを取得
$(byText("Login"))

要素の属性を使用して要素を見つける

// class="form-control"である要素を取得
$("[class='form-control']")

テキスト入力要素を使用して要素を見つける

// テキスト入力要素の type 属性が "text" の最初の要素を取得
$(By.type("text"))

ボタン要素を使用して要素を見つける

// ボタン要素の type 属性が "submit" である最初の要素を取得
$(By.attribute("type", "submit"))

要素の親要素を使用して要素を見つける

// id="username" を持つ要素の親要素を取得
$("#username").parent()

要素の兄弟要素を使用して要素を見つける

// class="form-group" を持つ要素の兄弟要素を取得
$(".form-group").sibling(0)

子要素を使用して要素を見つける

// id="menu" を持つ要素の最初の a 要素を取得
$("#menu").find("a", 0)

テーブルのセルを使用して要素を見つける

// テーブルの 2 行目、3 列目のセルを取得
$(By.cssSelector("table tr:nth-child(2) td:nth-child(3)"))

フォーム要素を使用して要素を見つける

// フォームの id 属性が "loginForm" の最初の要素を取得
$(By.id("loginForm")).first()

指定した要素の後に続く要素を使用して要素を見つける

// id="username" を持つ要素の後に続く要素を取得
$("#username").sibling(Condition.exist)

要素の中の特定の要素を使用して要素を見つける

// id="form" を持つ要素の中にある、class="form-group" を持つ最初の要素を取得
$("#form").find(".form-group", 0)

要素の親要素から特定の要素を使用して要素を見つける

// id="username" を持つ要素の親要素から、class="form-group" を持つ最初の要素を取得
$("#username").parent().$(By.className("form-group"))

要素の位置を使用して要素を見つける

// ページ上の 3 番目の input 要素を取得
$("input", 2)

要素の属性値の一部に一致する要素を使用して要素を見つける

// class 属性に "form-" を含む要素を取得
$("[class*=form-]")

要素の子孫要素を使用して要素を見つける

// id="form" を持つ要素の中で、class="form-group" を持つ要素を全て取得
$("#form").$$(".form-group")

ラベル要素を使用して要素を見つける

// ラベルの for 属性が "username" である要素を取得
$(By.attribute("for", "username")).shouldBe(visible)

要素の前に続く要素を使用して要素を見つける

// id="username" を持つ要素の前に続く要素を取得
$("#username").preceding(Condition.exist)

要素のテキストを使用して要素を見つける

// ページ上の最初の "Selenide" というテキストを持つ要素を取得
$(byText("Selenide"))

要素の子要素のテキストを使用して要素を見つける

// id="form" を持つ要素の中にある、class="form-group" を持つ要素の中で、テキストが "Username" である要素を取得
$("#form").$(byText("Username")).parent()
タイトルとURLをコピーしました