Test Table
This page is created to practice building XPath locators for real-world tables. Use the table below to locate specific cells, rows, and links based on attributes like data-col, headers, or text content. Try writing locators for courses by language, level, or enrollment numbers, and verify that clicking a course link opens the correct page. If you want to learn how to master XPath and apply it in Selenium tests, check out my XPath Locators for Selenium program.
Automation Courses
Filters
| ID | Course Name | Language | Level | Enrollments | Link |
|---|---|---|---|---|---|
| 1517620 | Selenium Framework | Java | Advanced | 2667 | View |
| 3970682 | Selenium Grid | Java | Advanced | 2207 | View |
| 2854476 | REST Assured | Java | Intermediate | 8254 | View |
| 1743612 | XPath Locators | Any | Beginner | 14762 | View |
| 1904956 | Advanced Selenium | Java | Intermediate | 16452 | View |
| 5393658 | Python for Testers | Python | Beginner | 1365 | View |
| 4536644 | Java for Testers | Java | Beginner | 6678 | View |
| 4824578 | Selenium with Python | Python | Beginner | 10705 | View |
| 1693880 | Selenium with Java | Java | Beginner | 64284 | View |
Test case 1: Language filter → Java
- Open page
- Select Language = Java
- Verify only Java courses are visible
Fails if language filter is not reapplied on change
Test case 2: Level filter → Beginner only
- Open page
- Uncheck Intermediate and Advanced
- Verify that only Beginner courses are visible
Fails if unchecked levels still pass the filter
Test case 3: Min enrollments → 10,000+
- Open page
- Open “Min enrollments” dropdown and choose 10,000+
- Verify every visible row shows enrollments ≥ 10,000
Fails if numeric comparison is done as strings
Test case 4: Combined filters → Python + Beginner + 10,000+
- Open page
- Select Language = Python
- Uncheck Intermediate and Advanced
- Set Min enrollments = 10,000+
- Verify only Python Beginner courses with ≥ 10,000 enrollments are visible
Fails if incorrect courses are visible
Test case 5: No results state
- Open page
- Select a combination that yields no matches (e.g., Language with Level that does not exist)
- Verify “No matching courses.” is shown
Fails if no-data state does not toggle with filters
Test case 6: Reset button visibility and behavior
- Open page
- Change any filter
- Verify the Reset button becomes visible
- Click Reset
- Verify Language = Any, all Levels checked, Min enrollments = Any
- Verify the Reset button is hidden and all rows are visible
Fails if defaults or visibility logic are not restored
Test case 7: Sort by Enrollments (ascending, numeric)
- Open page
- Set Sort by = Enrollments
- Verify visible rows are ordered from smallest to largest enrollment
- Verify numbers with commas sort correctly
Fails if the sort is lexicographic
Test case 8: Sort by Course Name (alphabetical)
- Open page
- Set Sort by = Course Name
- Verify visible rows are ordered A→Z by course name
- Verify order updates after changing filters
Fails if string compare ignores case/whitespace inconsistently
