- 基本的な使い方
- 要素の指定方法
- 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()