{"id":27962163,"url":"https://github.com/cihat-kose/selenium-practice-lessons","last_synced_at":"2025-08-10T16:07:00.991Z","repository":{"id":285744333,"uuid":"606192203","full_name":"cihat-kose/selenium-practice-lessons","owner":"cihat-kose","description":"Hands-on UI automation practice with Selenium WebDriver and Java. Includes XPath, waits, and common UI patterns.","archived":false,"fork":false,"pushed_at":"2025-04-20T12:42:26.000Z","size":80,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-07T19:14:43.206Z","etag":null,"topics":["java","java-selenium-junit","testing-automation","ui-testing","xpath-selectors"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cihat-kose.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-02-24T20:14:11.000Z","updated_at":"2025-04-20T12:42:29.000Z","dependencies_parsed_at":"2025-04-20T13:54:41.409Z","dependency_job_id":null,"html_url":"https://github.com/cihat-kose/selenium-practice-lessons","commit_stats":null,"previous_names":["cihat-kose/selenium-practice-lesson","cihat-kose/selenium-practice-lessons"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cihat-kose/selenium-practice-lessons","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cihat-kose%2Fselenium-practice-lessons","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cihat-kose%2Fselenium-practice-lessons/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cihat-kose%2Fselenium-practice-lessons/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cihat-kose%2Fselenium-practice-lessons/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cihat-kose","download_url":"https://codeload.github.com/cihat-kose/selenium-practice-lessons/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cihat-kose%2Fselenium-practice-lessons/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269747909,"owners_count":24469102,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-10T02:00:08.965Z","response_time":71,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","java-selenium-junit","testing-automation","ui-testing","xpath-selectors"],"created_at":"2025-05-07T19:14:37.051Z","updated_at":"2025-08-10T16:07:00.933Z","avatar_url":"https://github.com/cihat-kose.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Selenium Practice Lessons\n\n![Java](https://img.shields.io/badge/Java-ED8B00?style=for-the-badge\u0026logo=java\u0026logoColor=white)\n![Selenium](https://img.shields.io/badge/Selenium-43B02A?style=for-the-badge\u0026logo=selenium\u0026logoColor=white)\n![JUnit](https://img.shields.io/badge/JUnit-25A162?style=for-the-badge\u0026logo=junit\u0026logoColor=white)\n![GitHub last commit](https://img.shields.io/github/last-commit/cihat-kose/selenium-practice-lesson?style=for-the-badge)\n\n## 💡 Introduction\nWelcome to the **selenium-practice-lessons** repository! This project is designed for practical learning and hands-on exercises in UI test automation using Selenium. It’s ideal for those who want to strengthen their Selenium skills through real-world test scenarios.\n\n## Table of Contents\n- [Introduction](#-introduction)\n- [Installation](#-installation)\n- [Usage](#-usage)\n- [Features](#-features)\n- [Dependencies](#-dependencies)\n- [Documentation](#-documentation)\n- [Examples](#-examples)\n- [Troubleshooting](#-troubleshooting)\n- [Contributors](#-contributors)\n- [Contributing](#-contributing)\n- [License](#-license)\n\n## 📥 Installation\n\n1. Open IntelliJ IDEA.\n2. Select **File \u003e New \u003e Project from Version Control**.\n3. Enter the repository URL: `https://github.com/cihat-kose/selenium-practice-lesson.git` and click **Clone**.\n4. Ensure JDK is installed:\n   - Go to **File \u003e Project Structure \u003e Project**\n   - Set the **Project SDK** to **Java 21** (or later)\n5. Add required dependencies manually:\n   - Go to **File \u003e Project Structure \u003e Libraries**\n   - Click the **+** icon and select **From Maven**\n   - Add the following artifacts:\n     - `org.seleniumhq.selenium:selenium-java:latest`\n     - `commons-io:commons-io:latest`\n     - `org.slf4j:slf4j-nop:latest`\n\n💡 *No `pom.xml` or `build.gradle` is required. All dependencies are added manually through IntelliJ IDEA.*\n\n## ⚙️ Usage\n1. Open the project in IntelliJ IDEA.\n2. Navigate to the test directories containing practice lessons.\n3. Run test classes or methods using IntelliJ’s test runner.\n4. Modify or extend test cases as needed to enhance your understanding.\n\n## ✨ Features\n- Focused practice modules on essential Selenium skills.\n- Hands-on test cases covering real-world UI elements and flows.\n- Easy-to-understand structure for beginners and intermediate learners.\n\n## 📦 Dependencies\n- **Java JDK**: 11 or newer (tested on 21.0.6)\n- **Selenium WebDriver**: 4.31.0\n- **JUnit**: 4.13.1 (comes bundled with Java setup in most IDEs)\n- **Commons IO**: 2.11.0\n- **SLF4J NOP**: 1.7.30\n\n## 📚 Documentation\nEach test file includes inline documentation explaining the scenario and Selenium functions being used.\n\n## 💡 Examples\n\n### Core Selenium Techniques\n- **Locating Elements**: Practice using ID, name, class, CSS Selector, and XPath.\n- **Interaction Methods**: Perform clicks, typing, selections, and submissions.\n\n### User Interaction\n- **Action Class Examples**: Hovering, drag-and-drop, and composite actions.\n- **Keyboard/Mouse Control**: Using Robot class for OS-level control.\n\n### Wait Strategies\n- **Explicit Waits**: Synchronize your tests with slow-loading elements.\n- **Implicit Waits**: Set global wait defaults for driver operations.\n\n### Multi-Context Handling\n- **iFrames**: Switch to frames and interact with inner elements.\n- **Window/Tab Management**: Handle multiple browser tabs or pop-ups.\n\n### Extra Scenarios\n- **File Upload**: Handle file dialogs using both Selenium and Robot.\n- **Scrolling Techniques**: Scroll into view or to the bottom of the page.\n\n## 🛠️ Troubleshooting\nIf you experience any issues:\n\n- Make sure all `.jar` dependencies are correctly added in your IDE.\n- Check that your browser drivers (e.g., ChromeDriver) are up-to-date.\n- Ensure that your Project SDK is set correctly in IntelliJ.\n- Review test logs and console output to identify failures.\n- Still stuck? [Open an issue on GitHub](https://github.com/cihat-kose/selenium-practice-lessons/issues) and describe your problem in detail.\n\n## 👥 Contributors\n- [cihat-kose](https://github.com/cihat-kose) – Cihat Köse  \n- [SefaKahramann](https://github.com/SefaKahramann) – Sefa Kahraman\n\n## 🤝 Contributing\nContributions are welcome! Please follow these steps:\n1. Fork the repository.\n2. Create a new branch (`git checkout -b feature-branch`).\n3. Commit your changes (`git commit -m 'Add new feature'`).\n4. Push to the branch (`git push origin feature-branch`).\n5. Create a Pull Request.\n\n## 📜 License\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.\n\nFor more info, visit the [selenium-practice-lessons GitHub page](https://github.com/cihat-kose/selenium-practice-lessons).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcihat-kose%2Fselenium-practice-lessons","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcihat-kose%2Fselenium-practice-lessons","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcihat-kose%2Fselenium-practice-lessons/lists"}