Skip to content

Commit c7e1a6e

Browse files
Example code for added for checking if element is disabled, enabled. checked and visible (#68)
* work in progress for checking element is selected * added example code for checking elements state
1 parent 80c619a commit c7e1a6e

File tree

3 files changed

+95
-0
lines changed

3 files changed

+95
-0
lines changed
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
package io.github.mfaisalkhatri.tests;
2+
3+
import com.microsoft.playwright.*;
4+
import com.microsoft.playwright.options.AriaRole;
5+
import org.testng.annotations.AfterClass;
6+
import org.testng.annotations.BeforeClass;
7+
import org.testng.annotations.Test;
8+
9+
import static com.microsoft.playwright.assertions.PlaywrightAssertions.assertThat;
10+
11+
public class TestElementState {
12+
13+
private Playwright playwright;
14+
private Page page;
15+
16+
17+
@BeforeClass
18+
public void setup() {
19+
this.playwright = Playwright.create();
20+
final Browser browser = playwright.chromium().launch(new BrowserType.LaunchOptions().setHeadless(false).setChannel("chrome"));
21+
this.page = browser.newPage();
22+
}
23+
24+
@Test
25+
public void testElementIsDisabled() {
26+
page.navigate("https://the-internet.herokuapp.com/jqueryui/menu#");
27+
Locator disabledMenu = page.locator("#ui-id-1 > a");
28+
assertThat(disabledMenu).isDisabled();
29+
}
30+
31+
@Test
32+
public void testElementIsEnabled() {
33+
page.navigate("https://the-internet.herokuapp.com/jqueryui/menu#");
34+
Locator enabledMenu = page.locator("#ui-id-3 > a");
35+
assertThat(enabledMenu).isEnabled();
36+
}
37+
38+
@Test
39+
public void testElementIsDisplayed() {
40+
page.navigate("https://www.lambdatest.com/selenium-playground/");
41+
42+
Locator radioButtonLink = page.getByRole(AriaRole.LINK, new Page.GetByRoleOptions().setName("Radio Buttons Demo"));
43+
radioButtonLink.click();
44+
Locator pageHeading = page.getByRole(AriaRole.HEADING, new Page.GetByRoleOptions().setName("Radio button Demo"));
45+
assertThat(pageHeading).isVisible();
46+
assertThat(pageHeading).equals("Radio button Demo");
47+
}
48+
49+
@Test
50+
public void testElementIsSelected() {
51+
page.navigate("https://www.lambdatest.com/selenium-playground/radiobutton-demo");
52+
Locator maleRadioButton = page.getByLabel("Male").first();
53+
maleRadioButton.click();
54+
assertThat(maleRadioButton).isChecked();
55+
}
56+
57+
@Test
58+
public void testRadioButtonIsDisabled() {
59+
page.navigate("https://www.lambdatest.com/selenium-playground/radiobutton-demo");
60+
Locator disabledRadioButton = page.getByLabel("Disabled Radio Button").first();
61+
assertThat(disabledRadioButton).isDisabled();
62+
}
63+
@Test
64+
public void testTextBoxIsEditable() {
65+
page.navigate("https://www.lambdatest.com/selenium-playground/simple-form-demo");
66+
Locator enterMessagField = page.getByPlaceholder("Please enter your Message");
67+
assertThat(enterMessagField).isEditable();
68+
}
69+
70+
@AfterClass
71+
public void tearDown() {
72+
this.page.close();
73+
this.playwright.close();
74+
}
75+
76+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
3+
<suite name="Browser Navigation test suite " >
4+
<test name="Browser navigation tests using Playwright on Chrome">
5+
<classes>
6+
<class name="io.github.mfaisalkhatri.tests.TestElementState">
7+
<methods>
8+
<include name="testElementIsDisabled"/>
9+
<include name="testElementIsEnabled"/>
10+
<include name="testElementIsDisplayed"/>
11+
<include name="testElementIsSelected"/>
12+
<include name="testRadioButtonIsDisabled"/>
13+
<include name="testTextBoxIsEditable"/>
14+
</methods>
15+
</class>
16+
</classes>
17+
</test>
18+
</suite>

test-suites/testng.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,6 @@
1313
<suite-file path="testng-mousehovertest.xml"/>
1414
<suite-file path="testng-playwrightdemotests.xml"/>
1515
<suite-file path="testng-radiobuttons.xml"/>
16+
<suite-file path="testng-elementstatetest.xml"/>
1617
</suite-files>
1718
</suite>

0 commit comments

Comments
 (0)