- 基本的な使い方
- 要素の指定方法
- IDを使用して要素を見つける
- クラス名を使用して要素を見つける
- 名前を使用して要素を見つける
- リンクのテキストを使用して要素を見つける
- 部分的なリンクのテキストを使用して要素を見つける
- XPath式を使用して要素を見つける
- 要素内のテキストを使用して要素を見つける
- 要素の属性を使用して要素を見つける
- テキスト入力要素を使用して要素を見つける
- ボタン要素を使用して要素を見つける
- 要素の親要素を使用して要素を見つける
- 要素の兄弟要素を使用して要素を見つける
- 子要素を使用して要素を見つける
- テーブルのセルを使用して要素を見つける
- フォーム要素を使用して要素を見つける
- 指定した要素の後に続く要素を使用して要素を見つける
- 要素の中の特定の要素を使用して要素を見つける
- 要素の親要素から特定の要素を使用して要素を見つける
- 要素の位置を使用して要素を見つける
- 要素の属性値の一部に一致する要素を使用して要素を見つける
- 要素の子孫要素を使用して要素を見つける
- ラベル要素を使用して要素を見つける
- 要素の前に続く要素を使用して要素を見つける
- 要素のテキストを使用して要素を見つける
- 要素の子要素のテキストを使用して要素を見つける
基本的な使い方
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()

