Skip to content

Commit 3e47e46

Browse files
Added example code to work with single and multi select dropdown boxes (#62)
* added example code for working with dropdown boxes and removed the commented lines from testng.xml files * updated dropdown tests to gracefully close the browser and removed all extra spaces/lines from all test classes
1 parent d5d9138 commit 3e47e46

17 files changed

Lines changed: 136 additions & 30 deletions

src/test/java/io/github/mfaisalkhatri/tests/BaseTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,4 @@ public void setupTest(final String browser) {
1919
public void tearDown() {
2020
this.browserManager.closeBrowser();
2121
}
22-
}
23-
22+
}

src/test/java/io/github/mfaisalkhatri/tests/BrowserNavigationTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,4 +52,4 @@ public void testTitleAndCurrentUrl() {
5252
assertEquals(pageTitle, "The Internet");
5353
}
5454

55-
}
55+
}

src/test/java/io/github/mfaisalkhatri/tests/DoubleClickTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,4 @@ public void testDoubleClick () {
2222
buttonsPage.doubleClickAndCheckAlertText("You double clicked me.. Thank You..");
2323

2424
}
25-
}
25+
}
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
package io.github.mfaisalkhatri.tests;
2+
3+
import com.microsoft.playwright.*;
4+
import com.microsoft.playwright.options.SelectOption;
5+
import org.testng.annotations.AfterClass;
6+
import org.testng.annotations.BeforeClass;
7+
import org.testng.annotations.Test;
8+
9+
import java.util.regex.Pattern;
10+
11+
import static com.microsoft.playwright.assertions.PlaywrightAssertions.assertThat;
12+
import static org.testng.Assert.assertEquals;
13+
14+
public class DropdownTests {
15+
16+
private Playwright playwright;
17+
private Page page;
18+
19+
20+
@BeforeClass
21+
public void setup() {
22+
this.playwright = Playwright.create();
23+
final Browser browser = playwright.chromium().launch(new BrowserType.LaunchOptions().setHeadless(false).setChannel("chrome"));
24+
this.page = browser.newPage();
25+
}
26+
27+
@Test
28+
public void testSelectByOption() {
29+
30+
this.page.navigate("https://the-internet.herokuapp.com/dropdown");
31+
final Locator dropdownField = this.page.locator("#dropdown");
32+
33+
dropdownField.selectOption("Option 2");
34+
35+
final String dropdownFieldSelectedValue = this.page.locator("#dropdown [selected='selected']").innerText();
36+
assertEquals(dropdownFieldSelectedValue, "Option 2");
37+
38+
}
39+
40+
@Test
41+
public void testSelectByLabel() {
42+
43+
this.page.navigate("https://the-internet.herokuapp.com/dropdown");
44+
final Locator dropdownField = this.page.locator("#dropdown");
45+
46+
dropdownField.selectOption(new SelectOption().setLabel("Option 1"));
47+
48+
final String dropdownFieldSelectedValue = this.page.locator("#dropdown [selected='selected']").innerText();
49+
assertEquals(dropdownFieldSelectedValue, "Option 1");
50+
51+
}
52+
53+
@Test
54+
public void testSelectByIndex() {
55+
56+
this.page.navigate("https://the-internet.herokuapp.com/dropdown");
57+
final Locator dropdownField = this.page.locator("#dropdown");
58+
59+
dropdownField.selectOption(new SelectOption().setIndex(2));
60+
61+
final String dropdownFieldSelectedValue = this.page.locator("#dropdown [selected='selected']").innerText();
62+
assertEquals(dropdownFieldSelectedValue, "Option 2");
63+
64+
}
65+
@Test
66+
public void testSelectByValue() {
67+
68+
this.page.navigate("https://www.lambdatest.com/selenium-playground/select-dropdown-demo");
69+
final Locator dropdownField = this.page.locator("#select-demo");
70+
71+
dropdownField.selectOption(new SelectOption().setValue("Wednesday"));
72+
73+
final Locator daySelected = this.page.locator(".pt-10 p");
74+
assertThat(daySelected).hasText("Day selected :- Wednesday");
75+
}
76+
77+
@Test
78+
public void testMultiSelectOptions() {
79+
this.page.navigate("https://www.lambdatest.com/selenium-playground/select-dropdown-demo");
80+
81+
final Locator dropdownField = this.page.locator("#multi-select");
82+
dropdownField.selectOption(new SelectOption[]{new SelectOption().setLabel("New York"), new SelectOption().setLabel("Texas"), new SelectOption().setValue("California"), new SelectOption().setIndex(7)});
83+
84+
assertThat(dropdownField).hasValues(new Pattern[]{Pattern.compile("California"), Pattern.compile("New York"), Pattern.compile("Texas"), Pattern.compile("Washington")});
85+
}
86+
87+
@AfterClass
88+
public void tearDown() {
89+
this.playwright.close();
90+
}
91+
}

src/test/java/io/github/mfaisalkhatri/tests/FormAuthenticationTests.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ public void testLoginFunctionality() {
2222

2323
final var formAuthenticationPage = new FormAuthenticationPage(page);
2424
assertEquals(formAuthenticationPage.pageHeader(), "Login Page");
25+
2526
final var securePage = formAuthenticationPage.performLogin(userName, password);
2627
assertTrue(securePage.successMessage().contains("You logged into a secure area!"));
2728
assertEquals(securePage.pageHeader(), " Secure Area");
@@ -30,4 +31,4 @@ public void testLoginFunctionality() {
3031
securePage.logoutBtn().isEnabled();
3132
securePage.logoutFromWebsite();
3233
}
33-
}
34+
}

src/test/java/io/github/mfaisalkhatri/tests/PlaywrightDemoTests.java

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -79,16 +79,16 @@ public void testOnChromeSlowMo() {
7979
browser.close();
8080
}
8181

82-
@Test
83-
public void testOnEdge() {
84-
final Playwright playwright = Playwright.create();
85-
final Browser browser = playwright.chromium().launch(new BrowserType.LaunchOptions().setHeadless(false).setChannel("msedge"));
86-
final Page page = browser.newPage();
87-
page.navigate("https://ecommerce-playground.lambdatest.io/");
88-
final String pageTitle = page.title();
89-
assertEquals(pageTitle, "Your Store");
90-
browser.close();
91-
}
82+
@Test
83+
public void testOnEdge() {
84+
final Playwright playwright = Playwright.create();
85+
final Browser browser = playwright.chromium().launch(new BrowserType.LaunchOptions().setHeadless(false).setChannel("msedge"));
86+
final Page page = browser.newPage();
87+
page.navigate("https://ecommerce-playground.lambdatest.io/");
88+
final String pageTitle = page.title();
89+
assertEquals(pageTitle, "Your Store");
90+
browser.close();
91+
}
9292

9393
@Test
9494
public void testBrowserNavigation() {
@@ -126,5 +126,4 @@ public void testBrowserNavigation() {
126126
browser.close();
127127

128128
}
129-
}
130-
129+
}

src/test/java/io/github/mfaisalkhatri/tests/RefactoredPlaywrightTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@ public void websiteTest() {
1616
assertEquals(pageTitle, "Your Store");
1717
}
1818

19-
}
19+
}

src/test/java/io/github/mfaisalkhatri/tests/ScreenshotTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,4 +74,4 @@ public void takeElementScreenshot (){
7474
.screenshot(new Locator.ScreenshotOptions().setPath(Paths.get("./screenshots/screenshot_element.png")));
7575
}
7676

77-
}
77+
}

src/test/java/io/github/mfaisalkhatri/tests/WindowSizeTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package io.github.mfaisalkhatri.tests;
22

33
import com.microsoft.playwright.*;
4-
import io.github.mfaisalkhatri.browsers.BrowserManager;
54
import org.testng.annotations.Test;
65

76
import static org.testng.Assert.assertEquals;
@@ -44,4 +43,4 @@ public void testDifferentWindowSizeMethodTwo() {
4443

4544
}
4645

47-
}
46+
}

test-suites/testng-browsernavigationtests.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@
1212
</class>
1313
</classes>
1414
</test>
15-
</suite> <!-- Suite -->
15+
</suite>

0 commit comments

Comments
 (0)