{"id":24743542,"url":"https://github.com/thanasornsawan/robotframework-practice","last_synced_at":"2026-04-20T09:02:03.853Z","repository":{"id":134668459,"uuid":"497865622","full_name":"Thanasornsawan/RobotFramework-Practice","owner":"Thanasornsawan","description":null,"archived":false,"fork":false,"pushed_at":"2022-07-30T07:06:42.000Z","size":28694,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-22T21:45:38.079Z","etag":null,"topics":["android","appium-android","python","qa","qaautomation","robotframework","selenium","test-automation","testing-framework"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Thanasornsawan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2022-05-30T09:02:04.000Z","updated_at":"2023-03-08T00:36:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"37aae9f9-3b3f-46db-a80c-7a34afe6b46b","html_url":"https://github.com/Thanasornsawan/RobotFramework-Practice","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Thanasornsawan/RobotFramework-Practice","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thanasornsawan%2FRobotFramework-Practice","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thanasornsawan%2FRobotFramework-Practice/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thanasornsawan%2FRobotFramework-Practice/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thanasornsawan%2FRobotFramework-Practice/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Thanasornsawan","download_url":"https://codeload.github.com/Thanasornsawan/RobotFramework-Practice/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thanasornsawan%2FRobotFramework-Practice/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32040353,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T00:18:06.643Z","status":"online","status_checked_at":"2026-04-20T02:00:06.527Z","response_time":94,"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":["android","appium-android","python","qa","qaautomation","robotframework","selenium","test-automation","testing-framework"],"created_at":"2025-01-28T01:37:07.082Z","updated_at":"2026-04-20T09:02:03.803Z","avatar_url":"https://github.com/Thanasornsawan.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Robot Framework Selenium Practice\n\nThis repository is my robot framework practice.In `web automation` folder is practice robot frammework with just robot framework command (codeless) but if you want python with robot framework, please check in `Python Selenium` folder.\n\n### Version of package in this repository\nrobotframework                 |\t5.0.1 \u003cbr/\u003e\nrobotframework-pythonlibcore   |\t3.0.0 \u003cbr/\u003e\nrobotframework-requests        |\t0.9.3 \u003cbr/\u003e\nrobotframework-seleniumlibrary |\t6.0.0 \u003cbr/\u003e\nselenium                       |\t4.2.0 \u003cbr/\u003e\n\n**Please check your version and document during following this repository because some old robot framework version use another way to define variables**\n\n### How to start robot\n```shell\nrobot {filename.robot}\nnormal command: robot broke.robot\nrun specific test case in test suite: robot -t \"tc-001*\" .\\broke.robot\nkeep the result inside folder Results: robot -d .\\Results\\ '.\\web automation\\eBay\\basicSearch.robot' \nSpecify variable: robot -d .\\Results\\ -v env:uat '.\\web automation\\eBay\\basicSearch.robot' \nrobot -d .\\Results\\ -v url:www.google.com -v browser:firefox '.\\web automation\\eBay\\basicSearch.robot' \n```\n\n### Web automation\n\u003e require `pip install robotframework` and `pip install robotframework-seleniumlibrary` \u003cbr/\u003e\n\u003e Download chrome driver and set into PATH system.\u003cbr/\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eDoppio Tech\u003c/summary\u003e\n\n\u003e File for test web automation is in folder `ep01_material` for test on localhost \u003cbr/\u003e\n\u003e Focus on practice many techniques for xpath input text box and form.\n\n- ex00 focus on input text that have unique ID\n- ex01 focus on input text that have custom attribute 'v'\n- ex02 focus on parent tag \u003cdiv\u003e have custom attribute 'v'\n- ex03 focus on parent tag \u003cdiv\u003e have custom attribute 'v' + random value\n- ex04 both parent 'div tag' and child 'input tag' not have attribute but \u003cspan\u003e have custom attribute 'c'\n- ex05 None of tags has attruibutes, focus on text between \u003cspan\u003e\n- ex06 dupplicate attribute on parent tags, use keyword 'and'\n- assignment practice input, click element in dropdown, select checkbox, click button\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eeBay\u003c/summary\u003e\n\n\u003e Focus on testing real web application with \"Page Object Model\" pattern from Resources folder \u003cbr/\u003e\n\u003e The idea of `POM` is to seperate common functions following pages or navigation to use with many places.\u003cbr/\u003e\n\u003e The commonFunctionality.robot is common functions that can use for all test suites like open and close browser.\n\u003c/details\u003e\n- basicSearch.robot use varaible file from ./Resources/WebElements.py and `POM` pattern by seperate into HeaderPage.robot and SearchResultsPage.robot and get parameter arguments from Keywords section.\n\n\u003cdetails\u003e\n  \u003csummary\u003eDemoQA\u003c/summary\u003e\n\n\u003e Focus on practice all Elements, Forms, Alert, Frame \u0026 Windows, Widgets, Interactions, Book Store Application\n- broke.robot is focus on veiry image valid/invalid and link valid/invalid\n- radio.robot\n- checkbox.robot (for loop, concat string, scroll to bottom with js)\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eSauceDemo\u003c/summary\u003e\n- ifelse.robot\n\u003c/details\u003e\n\n### API automation\n\u003e require `pip install robotframework-requests`\n\u003e Run local server by `java -jar doppio_api.jar`\n\u003e File for test web automation is in folder `ep03_material_v2` for test on localhost \u003cbr/\u003e\n\n### Android automation\n\u003e required `pip install robotframework-robotframework-appiumlibrary`\n\u003e File for test web automation is in folder `ep02_material` for test on localhost \u003cbr/\u003e\n- Download `Android studio` and then set PATH `ANDROID_HOME` under system (path from SDK Manager)\n- Download `Appmium` and `Appmium Inspector`\n- Download openJDK8 and then set PATH `JAVA_HOME` under system\n- Start `Virtual Device Manager` on `Android studio` and install `com.material.components.apk`\n- Appium Server GUI -\u003e Advanced \u003e Server address: localhost, Port: 4723, Allow CORP: yes\n- Appium Inspector -\u003e Remote host: localhost, Port: 4723, Path: /wd/hub\n- Copy json in `ep2_material\\ep2\\testapp.json` to put in `Appium Inspector` and then `Start Session`\n\nThe json data meaning..\u003cbr/\u003e\n\u003e I want to run test on Android 11 device with application = com.material.components \u003cbr/\u003e\n\u003e Start screen = com.material.components.activity.MainMenu \u003cbr/\u003e\n\nAppium Inspector act as client to sent JSON data to Appium Server for create session. The Appium Server act as middle man that translate JSON data into native framework for both andorid and ios for interacting with that application.But, we also can use robot framework to be client call data to Appium Server.\u003cbr/\u003e\n\nExecution time fast-slow: Accessibility ID \u003e ID \u003e (UISelector, Xpath)\n\n### Python Selenium\n\u003e refer: https://selenium-python.readthedocs.io/page-objects.html\n\n```markdown\n/Python Selenium/testcase\n\tmain.py (main test cases)\n\tpage.py (verify the testing page)\n  \tlocator.py (keep any attribute like class,id)\n        element.py (base function for any element use like search that need to wait page to see element)\n```\n\n### Other useful links for practice robot framework\n\n- Material ep01-ep03 is from [Doppio Tech Youtube](https://www.youtube.com/channel/UCmx_h_QeDQmI5SS0maT4lNw/playlists) **Thai language**\n- [https://demoqa.com/automation-practice-form](https://demoqa.com/automation-practice-form)\n- [http://automationpractice.com/index.php](http://automationpractice.com/index.php)\n- [http://the-internet.herokuapp.com/](http://the-internet.herokuapp.com/)\n- [https://phptravels.com/demo](https://phptravels.com/demo)\n- [https://testautomationpractice.blogspot.com/](https://testautomationpractice.blogspot.com/)\n- [https://www.saucedemo.com/](https://www.saucedemo.com/)\n- [https://www.softwaretestingmentor.com/category/](https://www.softwaretestingmentor.com/category/)\n\n### Recommend vs-code plugin for robot framework project\n![vscode plugin](https://github.com/Thanasornsawan/RobotFramework-Practice/blob/main/images/vscode_plugin.png?raw=true)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthanasornsawan%2Frobotframework-practice","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthanasornsawan%2Frobotframework-practice","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthanasornsawan%2Frobotframework-practice/lists"}