_selenide
TL;DR - Show Me The Code
5-select-from-a-dropdown/code/selenide/src/test/java/com/elemental/selenium/DropdownTest.java
package com.elemental.selenium;
import com.codeborne.selenide.SelenideElement;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import static com.codeborne.selenide.CollectionCondition.texts;
import static com.codeborne.selenide.Condition.text;
import static com.codeborne.selenide.Selenide.$;
import static com.codeborne.selenide.Selenide.open;
public class DropdownTest {
private final SelenideElement dropdownList = $("#dropdown");
@BeforeEach
void openAUT() {
open("https://the-internet.herokuapp.com/dropdown");
}
@Test
void checkAvailableOptions() {
dropdownList.getOptions()
.shouldHave(texts("Please select an option", "Option 1", "Option 2"));
}
@Test
void canSelectOptionByText() {
dropdownList.selectOption("Option 1");
dropdownList.getSelectedOption().shouldHave(text("Option 1"));
}
@Test
void canSelectOptionByValue() {
dropdownList.selectOptionByValue("2");
dropdownList.getSelectedOption().shouldHave(text("Option 2"));
}
}
Code Walkthrough
Importing Libraries
First let's import our requisite classes:
- for annotations (e.g.,
org.junit.jupiter.api.Test
), - opening the browser with Selenide (e.g.,
com.codeborne.selenide.Selenide.open
), - matchers for assertions (e.g.,
com.codeborne.selenide.Condition.text
)
Next, we'll start our test.
Example 1: checkAvailableOptions
Our first example checkAvailableOptions
shows how we can find the dropdown list by
its ID and verify that it contains all the expected options.
Example 2: canSelectOptionByText
Our second example canSelectOptionByText
shows how we can select an option by text:
dropdownList.selectOption("Option 1");
We then verify that the expected option is actually selected:
dropdownList.getSelectedOption().shouldHave(text("Option 1"));
Example 3: canSelectOptionByValue
Our third example canSelectOptionByValue
shows how we can select an option by text:
dropdownList.selectOptionByValue("2");
We then verify that the expected option is actually selected:
dropdownList.getSelectedOption().shouldHave(text("Option 2"));
Executing the Test
Before executing the test, we need to make sure the required dependencies are declared on the pom.xml
file.
Toggle to see the pom.xml
file.
5-select-from-a-dropdown/code/selenide/pom.xml
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.elemental.selenium</groupId>
<artifactId>tips-selenide-work-with-dropdown</artifactId>
<version>1.0.0</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>com.codeborne</groupId>
<artifactId>selenide</artifactId>
<version>7.4.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.11.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>3.26.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>2.0.16</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Finally, we can run the test by executing mvn test
from the command-line.