Repository files navigation

Keyword Driven-Robotframework SeleniumLibrary in Python

The purpose of the project is to display Keyword driven framework for web applications using SeleniumLibrary in Robotframework.

Tools & Technologies

  • Automation Tools : Robotframework(3.2.1) SeleniumLibrary(4.4.0)
  • Language : Python (3.8)
  • Data driven Testing Framework : Excellib (2.0.0)
  • Object Repository Design Pattern : Page Object Model
  • Test Execution Report: Robotframework HTML
  • Test Execution Mode: Parallel (using Pabot(1.7.0))
  • Browser Compatibility: Chrome and HeadlessChrome
  • Screenshot: Take screen shot API to cover the flow and caputer invalid screenshots
  • Implicit and explicit wait
  • Features: Mouse action, Dropdown, Handling new tabs/windows,Scrolls,HTML Tables and handling browser Popup, REST API(RESTInstance), JSONLibrary, DateTime, String & BuiltIn Keywords

Project Structure


  • Helper:- In this directory we will have centralized the functions we will using in the tests to perform steps, this way it keeps code clean and easy to maintain. If need to change won’t have to change in all tests in corresponding test file infact just change here. Next you will observe no hard-coded values used in any of helper functions all test data is centralized as well in ApplicationProperties.robot. We have CommonHelper.robot which holds common keywords which will be used repeatedly to achieve reusability

  • PageObjects :- In this directory we will store objects relevant to pages to achieve reusability in Helper classes, easy to maintain lets say locator of any element is changed by developer you wont have to change every in helper classes in fact just change from here last but least it keeps the code clean . Ensure to use id, css, relative xpath, in some cases id’s might not be available try css and xpath (relative). We have CommonObjects.robot to hold objects tied to common keywords and will be used repeatedly .

  • TestCases :- In this directory we will write all test cases here . In each test case code is written using clean code practices like no hard-coded values and clear to read. Testcases are designed to handle to capture screenshot if any test fails.

  • TestData:- In this directory we have created ApplicationProperties.robot to store all test data centralized , easy to maintain if changes we can change here and don’t have to change every in tests.

  • Utility:- In this directory we have Setup.robot which is responsible to start test for example opening browsers, navigating to website or closing browser to taking screenshot. Instead of writing all that code in every class we have made it code cleaner and abstracted and directly used in test cases. The other file here we have SeleniumKeywords.robot which is core of performing common re-usable SeleniumLibrary functions. We have centralized here this will easy to use and access, re-usbaility and keep code clean in Helper classes.

  • Reports:- The complete html report and log is placed here. It has a screenshot folder which contains screenshot which we take and screenshot if any test fails.

  • Requirements.txt:- This file contains list of libraries installed in order to run test cases.

How to Setup & Run the project:-

There are two ways:

  • Documentation :- Complete Technical Documentation is present under Doc directory to follow step by step.

OR

  • Download the code from repository and run following command. It will download all libraries automatically
pipinstallRequirments.txt
  • Run Single Test Suite:- You want to run HandleWindow.robot test class which is under Smoke directory you will run using following command
robot-dReportsTestCases/Smoke/HandleWindow.robot
  • Run All Test Suite:- You want to run all test classes which is under Smoke directory you will run using following command
robot-dReportsTestCases/Smoke/*.robot
  • Run Test Suites Parallel:- You want to run test suites in parallel mode you will run using following command . This will launch 3 browser windows as we have set --processes 3
pabot--processes3--outputdir"Reports"TestCases/*.robot

About

Robotframework SeleniumLibrary Python

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Keyword Driven-Robotframework SeleniumLibrary in Python

The purpose of the project is to display Keyword driven framework for web applications using SeleniumLibrary in Robotframework.

Tools & Technologies

  • Automation Tools : Robotframework(3.2.1) SeleniumLibrary(4.4.0)
  • Language : Python (3.8)
  • Data driven Testing Framework : Excellib (2.0.0)
  • Object Repository Design Pattern : Page Object Model
  • Test Execution Report: Robotframework HTML
  • Test Execution Mode: Parallel (using Pabot(1.7.0))
  • Browser Compatibility: Chrome and HeadlessChrome
  • Screenshot: Take screen shot API to cover the flow and caputer invalid screenshots
  • Implicit and explicit wait
  • Features: Mouse action, Dropdown, Handling new tabs/windows,Scrolls,HTML Tables and handling browser Popup, REST API(RESTInstance), JSONLibrary, DateTime, String & BuiltIn Keywords

Project Structure


  • Helper:- In this directory we will have centralized the functions we will using in the tests to perform steps, this way it keeps code clean and easy to maintain. If need to change won’t have to change in all tests in corresponding test file infact just change here. Next you will observe no hard-coded values used in any of helper functions all test data is centralized as well in ApplicationProperties.robot. We have CommonHelper.robot which holds common keywords which will be used repeatedly to achieve reusability

  • PageObjects :- In this directory we will store objects relevant to pages to achieve reusability in Helper classes, easy to maintain lets say locator of any element is changed by developer you wont have to change every in helper classes in fact just change from here last but least it keeps the code clean . Ensure to use id, css, relative xpath, in some cases id’s might not be available try css and xpath (relative). We have CommonObjects.robot to hold objects tied to common keywords and will be used repeatedly .

  • TestCases :- In this directory we will write all test cases here . In each test case code is written using clean code practices like no hard-coded values and clear to read. Testcases are designed to handle to capture screenshot if any test fails.

  • TestData:- In this directory we have created ApplicationProperties.robot to store all test data centralized , easy to maintain if changes we can change here and don’t have to change every in tests.

  • Utility:- In this directory we have Setup.robot which is responsible to start test for example opening browsers, navigating to website or closing browser to taking screenshot. Instead of writing all that code in every class we have made it code cleaner and abstracted and directly used in test cases. The other file here we have SeleniumKeywords.robot which is core of performing common re-usable SeleniumLibrary functions. We have centralized here this will easy to use and access, re-usbaility and keep code clean in Helper classes.

  • Reports:- The complete html report and log is placed here. It has a screenshot folder which contains screenshot which we take and screenshot if any test fails.

  • Requirements.txt:- This file contains list of libraries installed in order to run test cases.

How to Setup & Run the project:-

There are two ways:

  • Documentation :- Complete Technical Documentation is present under Doc directory to follow step by step.

OR

  • Download the code from repository and run following command. It will download all libraries automatically
pipinstallRequirments.txt
  • Run Single Test Suite:- You want to run HandleWindow.robot test class which is under Smoke directory you will run using following command
robot-dReportsTestCases/Smoke/HandleWindow.robot
  • Run All Test Suite:- You want to run all test classes which is under Smoke directory you will run using following command
robot-dReportsTestCases/Smoke/*.robot
  • Run Test Suites Parallel:- You want to run test suites in parallel mode you will run using following command . This will launch 3 browser windows as we have set --processes 3
pabot--processes3--outputdir"Reports"TestCases/*.robot

About

Robotframework SeleniumLibrary Python

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Keyword Driven-Robotframework SeleniumLibrary in Python

The purpose of the project is to display Keyword driven framework for web applications using SeleniumLibrary in Robotframework.

Tools & Technologies

  • Automation Tools : Robotframework(3.2.1) SeleniumLibrary(4.4.0)
  • Language : Python (3.8)
  • Data driven Testing Framework : Excellib (2.0.0)
  • Object Repository Design Pattern : Page Object Model
  • Test Execution Report: Robotframework HTML
  • Test Execution Mode: Parallel (using Pabot(1.7.0))
  • Browser Compatibility: Chrome and HeadlessChrome
  • Screenshot: Take screen shot API to cover the flow and caputer invalid screenshots
  • Implicit and explicit wait
  • Features: Mouse action, Dropdown, Handling new tabs/windows,Scrolls,HTML Tables and handling browser Popup, REST API(RESTInstance), JSONLibrary, DateTime, String & BuiltIn Keywords

Project Structure


  • Helper:- In this directory we will have centralized the functions we will using in the tests to perform steps, this way it keeps code clean and easy to maintain. If need to change won’t have to change in all tests in corresponding test file infact just change here. Next you will observe no hard-coded values used in any of helper functions all test data is centralized as well in ApplicationProperties.robot. We have CommonHelper.robot which holds common keywords which will be used repeatedly to achieve reusability

  • PageObjects :- In this directory we will store objects relevant to pages to achieve reusability in Helper classes, easy to maintain lets say locator of any element is changed by developer you wont have to change every in helper classes in fact just change from here last but least it keeps the code clean . Ensure to use id, css, relative xpath, in some cases id’s might not be available try css and xpath (relative). We have CommonObjects.robot to hold objects tied to common keywords and will be used repeatedly .

  • TestCases :- In this directory we will write all test cases here . In each test case code is written using clean code practices like no hard-coded values and clear to read. Testcases are designed to handle to capture screenshot if any test fails.

  • TestData:- In this directory we have created ApplicationProperties.robot to store all test data centralized , easy to maintain if changes we can change here and don’t have to change every in tests.

  • Utility:- In this directory we have Setup.robot which is responsible to start test for example opening browsers, navigating to website or closing browser to taking screenshot. Instead of writing all that code in every class we have made it code cleaner and abstracted and directly used in test cases. The other file here we have SeleniumKeywords.robot which is core of performing common re-usable SeleniumLibrary functions. We have centralized here this will easy to use and access, re-usbaility and keep code clean in Helper classes.

  • Reports:- The complete html report and log is placed here. It has a screenshot folder which contains screenshot which we take and screenshot if any test fails.

  • Requirements.txt:- This file contains list of libraries installed in order to run test cases.

How to Setup & Run the project:-

There are two ways:

  • Documentation :- Complete Technical Documentation is present under Doc directory to follow step by step.

OR

  • Download the code from repository and run following command. It will download all libraries automatically
pipinstallRequirments.txt
  • Run Single Test Suite:- You want to run HandleWindow.robot test class which is under Smoke directory you will run using following command
robot-dReportsTestCases/Smoke/HandleWindow.robot
  • Run All Test Suite:- You want to run all test classes which is under Smoke directory you will run using following command
robot-dReportsTestCases/Smoke/*.robot
  • Run Test Suites Parallel:- You want to run test suites in parallel mode you will run using following command . This will launch 3 browser windows as we have set --processes 3
pabot--processes3--outputdir"Reports"TestCases/*.robot

About

Robotframework SeleniumLibrary Python

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Keyword Driven-Robotframework SeleniumLibrary in Python

The purpose of the project is to display Keyword driven framework for web applications using SeleniumLibrary in Robotframework.

Tools & Technologies

  • Automation Tools : Robotframework(3.2.1) SeleniumLibrary(4.4.0)
  • Language : Python (3.8)
  • Data driven Testing Framework : Excellib (2.0.0)
  • Object Repository Design Pattern : Page Object Model
  • Test Execution Report: Robotframework HTML
  • Test Execution Mode: Parallel (using Pabot(1.7.0))
  • Browser Compatibility: Chrome and HeadlessChrome
  • Screenshot: Take screen shot API to cover the flow and caputer invalid screenshots
  • Implicit and explicit wait
  • Features: Mouse action, Dropdown, Handling new tabs/windows,Scrolls,HTML Tables and handling browser Popup, REST API(RESTInstance), JSONLibrary, DateTime, String & BuiltIn Keywords

Project Structure


  • Helper:- In this directory we will have centralized the functions we will using in the tests to perform steps, this way it keeps code clean and easy to maintain. If need to change won’t have to change in all tests in corresponding test file infact just change here. Next you will observe no hard-coded values used in any of helper functions all test data is centralized as well in ApplicationProperties.robot. We have CommonHelper.robot which holds common keywords which will be used repeatedly to achieve reusability

  • PageObjects :- In this directory we will store objects relevant to pages to achieve reusability in Helper classes, easy to maintain lets say locator of any element is changed by developer you wont have to change every in helper classes in fact just change from here last but least it keeps the code clean . Ensure to use id, css, relative xpath, in some cases id’s might not be available try css and xpath (relative). We have CommonObjects.robot to hold objects tied to common keywords and will be used repeatedly .

  • TestCases :- In this directory we will write all test cases here . In each test case code is written using clean code practices like no hard-coded values and clear to read. Testcases are designed to handle to capture screenshot if any test fails.

  • TestData:- In this directory we have created ApplicationProperties.robot to store all test data centralized , easy to maintain if changes we can change here and don’t have to change every in tests.

  • Utility:- In this directory we have Setup.robot which is responsible to start test for example opening browsers, navigating to website or closing browser to taking screenshot. Instead of writing all that code in every class we have made it code cleaner and abstracted and directly used in test cases. The other file here we have SeleniumKeywords.robot which is core of performing common re-usable SeleniumLibrary functions. We have centralized here this will easy to use and access, re-usbaility and keep code clean in Helper classes.

  • Reports:- The complete html report and log is placed here. It has a screenshot folder which contains screenshot which we take and screenshot if any test fails.

  • Requirements.txt:- This file contains list of libraries installed in order to run test cases.

How to Setup & Run the project:-

There are two ways:

  • Documentation :- Complete Technical Documentation is present under Doc directory to follow step by step.

OR

  • Download the code from repository and run following command. It will download all libraries automatically
pipinstallRequirments.txt
  • Run Single Test Suite:- You want to run HandleWindow.robot test class which is under Smoke directory you will run using following command
robot-dReportsTestCases/Smoke/HandleWindow.robot
  • Run All Test Suite:- You want to run all test classes which is under Smoke directory you will run using following command
robot-dReportsTestCases/Smoke/*.robot
  • Run Test Suites Parallel:- You want to run test suites in parallel mode you will run using following command . This will launch 3 browser windows as we have set --processes 3
pabot--processes3--outputdir"Reports"TestCases/*.robot

About

Robotframework SeleniumLibrary Python

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Keyword Driven-Robotframework SeleniumLibrary in Python

The purpose of the project is to display Keyword driven framework for web applications using SeleniumLibrary in Robotframework.

Tools & Technologies

  • Automation Tools : Robotframework(3.2.1) SeleniumLibrary(4.4.0)
  • Language : Python (3.8)
  • Data driven Testing Framework : Excellib (2.0.0)
  • Object Repository Design Pattern : Page Object Model
  • Test Execution Report: Robotframework HTML
  • Test Execution Mode: Parallel (using Pabot(1.7.0))
  • Browser Compatibility: Chrome and HeadlessChrome
  • Screenshot: Take screen shot API to cover the flow and caputer invalid screenshots
  • Implicit and explicit wait
  • Features: Mouse action, Dropdown, Handling new tabs/windows,Scrolls,HTML Tables and handling browser Popup, REST API(RESTInstance), JSONLibrary, DateTime, String & BuiltIn Keywords

Project Structure


  • Helper:- In this directory we will have centralized the functions we will using in the tests to perform steps, this way it keeps code clean and easy to maintain. If need to change won’t have to change in all tests in corresponding test file infact just change here. Next you will observe no hard-coded values used in any of helper functions all test data is centralized as well in ApplicationProperties.robot. We have CommonHelper.robot which holds common keywords which will be used repeatedly to achieve reusability

  • PageObjects :- In this directory we will store objects relevant to pages to achieve reusability in Helper classes, easy to maintain lets say locator of any element is changed by developer you wont have to change every in helper classes in fact just change from here last but least it keeps the code clean . Ensure to use id, css, relative xpath, in some cases id’s might not be available try css and xpath (relative). We have CommonObjects.robot to hold objects tied to common keywords and will be used repeatedly .

  • TestCases :- In this directory we will write all test cases here . In each test case code is written using clean code practices like no hard-coded values and clear to read. Testcases are designed to handle to capture screenshot if any test fails.

  • TestData:- In this directory we have created ApplicationProperties.robot to store all test data centralized , easy to maintain if changes we can change here and don’t have to change every in tests.

  • Utility:- In this directory we have Setup.robot which is responsible to start test for example opening browsers, navigating to website or closing browser to taking screenshot. Instead of writing all that code in every class we have made it code cleaner and abstracted and directly used in test cases. The other file here we have SeleniumKeywords.robot which is core of performing common re-usable SeleniumLibrary functions. We have centralized here this will easy to use and access, re-usbaility and keep code clean in Helper classes.

  • Reports:- The complete html report and log is placed here. It has a screenshot folder which contains screenshot which we take and screenshot if any test fails.

  • Requirements.txt:- This file contains list of libraries installed in order to run test cases.

How to Setup & Run the project:-

There are two ways:

  • Documentation :- Complete Technical Documentation is present under Doc directory to follow step by step.

OR

  • Download the code from repository and run following command. It will download all libraries automatically
pipinstallRequirments.txt
  • Run Single Test Suite:- You want to run HandleWindow.robot test class which is under Smoke directory you will run using following command
robot-dReportsTestCases/Smoke/HandleWindow.robot
  • Run All Test Suite:- You want to run all test classes which is under Smoke directory you will run using following command
robot-dReportsTestCases/Smoke/*.robot
  • Run Test Suites Parallel:- You want to run test suites in parallel mode you will run using following command . This will launch 3 browser windows as we have set --processes 3
pabot--processes3--outputdir"Reports"TestCases/*.robot

About

Robotframework SeleniumLibrary Python

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Keyword Driven-Robotframework SeleniumLibrary in Python

The purpose of the project is to display Keyword driven framework for web applications using SeleniumLibrary in Robotframework.

Tools & Technologies

  • Automation Tools : Robotframework(3.2.1) SeleniumLibrary(4.4.0)
  • Language : Python (3.8)
  • Data driven Testing Framework : Excellib (2.0.0)
  • Object Repository Design Pattern : Page Object Model
  • Test Execution Report: Robotframework HTML
  • Test Execution Mode: Parallel (using Pabot(1.7.0))
  • Browser Compatibility: Chrome and HeadlessChrome
  • Screenshot: Take screen shot API to cover the flow and caputer invalid screenshots
  • Implicit and explicit wait
  • Features: Mouse action, Dropdown, Handling new tabs/windows,Scrolls,HTML Tables and handling browser Popup, REST API(RESTInstance), JSONLibrary, DateTime, String & BuiltIn Keywords

Project Structure


  • Helper:- In this directory we will have centralized the functions we will using in the tests to perform steps, this way it keeps code clean and easy to maintain. If need to change won’t have to change in all tests in corresponding test file infact just change here. Next you will observe no hard-coded values used in any of helper functions all test data is centralized as well in ApplicationProperties.robot. We have CommonHelper.robot which holds common keywords which will be used repeatedly to achieve reusability

  • PageObjects :- In this directory we will store objects relevant to pages to achieve reusability in Helper classes, easy to maintain lets say locator of any element is changed by developer you wont have to change every in helper classes in fact just change from here last but least it keeps the code clean . Ensure to use id, css, relative xpath, in some cases id’s might not be available try css and xpath (relative). We have CommonObjects.robot to hold objects tied to common keywords and will be used repeatedly .

  • TestCases :- In this directory we will write all test cases here . In each test case code is written using clean code practices like no hard-coded values and clear to read. Testcases are designed to handle to capture screenshot if any test fails.

  • TestData:- In this directory we have created ApplicationProperties.robot to store all test data centralized , easy to maintain if changes we can change here and don’t have to change every in tests.

  • Utility:- In this directory we have Setup.robot which is responsible to start test for example opening browsers, navigating to website or closing browser to taking screenshot. Instead of writing all that code in every class we have made it code cleaner and abstracted and directly used in test cases. The other file here we have SeleniumKeywords.robot which is core of performing common re-usable SeleniumLibrary functions. We have centralized here this will easy to use and access, re-usbaility and keep code clean in Helper classes.

  • Reports:- The complete html report and log is placed here. It has a screenshot folder which contains screenshot which we take and screenshot if any test fails.

  • Requirements.txt:- This file contains list of libraries installed in order to run test cases.

How to Setup & Run the project:-

There are two ways:

  • Documentation :- Complete Technical Documentation is present under Doc directory to follow step by step.

OR

  • Download the code from repository and run following command. It will download all libraries automatically
pipinstallRequirments.txt
  • Run Single Test Suite:- You want to run HandleWindow.robot test class which is under Smoke directory you will run using following command
robot-dReportsTestCases/Smoke/HandleWindow.robot
  • Run All Test Suite:- You want to run all test classes which is under Smoke directory you will run using following command
robot-dReportsTestCases/Smoke/*.robot
  • Run Test Suites Parallel:- You want to run test suites in parallel mode you will run using following command . This will launch 3 browser windows as we have set --processes 3
pabot--processes3--outputdir"Reports"TestCases/*.robot

About

Robotframework SeleniumLibrary Python

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Keyword Driven-Robotframework SeleniumLibrary in Python

The purpose of the project is to display Keyword driven framework for web applications using SeleniumLibrary in Robotframework.

Tools & Technologies

  • Automation Tools : Robotframework(3.2.1) SeleniumLibrary(4.4.0)
  • Language : Python (3.8)
  • Data driven Testing Framework : Excellib (2.0.0)
  • Object Repository Design Pattern : Page Object Model
  • Test Execution Report: Robotframework HTML
  • Test Execution Mode: Parallel (using Pabot(1.7.0))
  • Browser Compatibility: Chrome and HeadlessChrome
  • Screenshot: Take screen shot API to cover the flow and caputer invalid screenshots
  • Implicit and explicit wait
  • Features: Mouse action, Dropdown, Handling new tabs/windows,Scrolls,HTML Tables and handling browser Popup, REST API(RESTInstance), JSONLibrary, DateTime, String & BuiltIn Keywords

Project Structure


  • Helper:- In this directory we will have centralized the functions we will using in the tests to perform steps, this way it keeps code clean and easy to maintain. If need to change won’t have to change in all tests in corresponding test file infact just change here. Next you will observe no hard-coded values used in any of helper functions all test data is centralized as well in ApplicationProperties.robot. We have CommonHelper.robot which holds common keywords which will be used repeatedly to achieve reusability

  • PageObjects :- In this directory we will store objects relevant to pages to achieve reusability in Helper classes, easy to maintain lets say locator of any element is changed by developer you wont have to change every in helper classes in fact just change from here last but least it keeps the code clean . Ensure to use id, css, relative xpath, in some cases id’s might not be available try css and xpath (relative). We have CommonObjects.robot to hold objects tied to common keywords and will be used repeatedly .

  • TestCases :- In this directory we will write all test cases here . In each test case code is written using clean code practices like no hard-coded values and clear to read. Testcases are designed to handle to capture screenshot if any test fails.

  • TestData:- In this directory we have created ApplicationProperties.robot to store all test data centralized , easy to maintain if changes we can change here and don’t have to change every in tests.

  • Utility:- In this directory we have Setup.robot which is responsible to start test for example opening browsers, navigating to website or closing browser to taking screenshot. Instead of writing all that code in every class we have made it code cleaner and abstracted and directly used in test cases. The other file here we have SeleniumKeywords.robot which is core of performing common re-usable SeleniumLibrary functions. We have centralized here this will easy to use and access, re-usbaility and keep code clean in Helper classes.

  • Reports:- The complete html report and log is placed here. It has a screenshot folder which contains screenshot which we take and screenshot if any test fails.

  • Requirements.txt:- This file contains list of libraries installed in order to run test cases.

How to Setup & Run the project:-

There are two ways:

  • Documentation :- Complete Technical Documentation is present under Doc directory to follow step by step.

OR

  • Download the code from repository and run following command. It will download all libraries automatically
pipinstallRequirments.txt
  • Run Single Test Suite:- You want to run HandleWindow.robot test class which is under Smoke directory you will run using following command
robot-dReportsTestCases/Smoke/HandleWindow.robot
  • Run All Test Suite:- You want to run all test classes which is under Smoke directory you will run using following command
robot-dReportsTestCases/Smoke/*.robot
  • Run Test Suites Parallel:- You want to run test suites in parallel mode you will run using following command . This will launch 3 browser windows as we have set --processes 3
pabot--processes3--outputdir"Reports"TestCases/*.robot

About

Robotframework SeleniumLibrary Python

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Keyword Driven-Robotframework SeleniumLibrary in Python

The purpose of the project is to display Keyword driven framework for web applications using SeleniumLibrary in Robotframework.

Tools & Technologies

  • Automation Tools : Robotframework(3.2.1) SeleniumLibrary(4.4.0)
  • Language : Python (3.8)
  • Data driven Testing Framework : Excellib (2.0.0)
  • Object Repository Design Pattern : Page Object Model
  • Test Execution Report: Robotframework HTML
  • Test Execution Mode: Parallel (using Pabot(1.7.0))
  • Browser Compatibility: Chrome and HeadlessChrome
  • Screenshot: Take screen shot API to cover the flow and caputer invalid screenshots
  • Implicit and explicit wait
  • Features: Mouse action, Dropdown, Handling new tabs/windows,Scrolls,HTML Tables and handling browser Popup, REST API(RESTInstance), JSONLibrary, DateTime, String & BuiltIn Keywords

Project Structure


  • Helper:- In this directory we will have centralized the functions we will using in the tests to perform steps, this way it keeps code clean and easy to maintain. If need to change won’t have to change in all tests in corresponding test file infact just change here. Next you will observe no hard-coded values used in any of helper functions all test data is centralized as well in ApplicationProperties.robot. We have CommonHelper.robot which holds common keywords which will be used repeatedly to achieve reusability

  • PageObjects :- In this directory we will store objects relevant to pages to achieve reusability in Helper classes, easy to maintain lets say locator of any element is changed by developer you wont have to change every in helper classes in fact just change from here last but least it keeps the code clean . Ensure to use id, css, relative xpath, in some cases id’s might not be available try css and xpath (relative). We have CommonObjects.robot to hold objects tied to common keywords and will be used repeatedly .

  • TestCases :- In this directory we will write all test cases here . In each test case code is written using clean code practices like no hard-coded values and clear to read. Testcases are designed to handle to capture screenshot if any test fails.

  • TestData:- In this directory we have created ApplicationProperties.robot to store all test data centralized , easy to maintain if changes we can change here and don’t have to change every in tests.

  • Utility:- In this directory we have Setup.robot which is responsible to start test for example opening browsers, navigating to website or closing browser to taking screenshot. Instead of writing all that code in every class we have made it code cleaner and abstracted and directly used in test cases. The other file here we have SeleniumKeywords.robot which is core of performing common re-usable SeleniumLibrary functions. We have centralized here this will easy to use and access, re-usbaility and keep code clean in Helper classes.

  • Reports:- The complete html report and log is placed here. It has a screenshot folder which contains screenshot which we take and screenshot if any test fails.

  • Requirements.txt:- This file contains list of libraries installed in order to run test cases.

How to Setup & Run the project:-

There are two ways:

  • Documentation :- Complete Technical Documentation is present under Doc directory to follow step by step.

OR

  • Download the code from repository and run following command. It will download all libraries automatically
pipinstallRequirments.txt
  • Run Single Test Suite:- You want to run HandleWindow.robot test class which is under Smoke directory you will run using following command
robot-dReportsTestCases/Smoke/HandleWindow.robot
  • Run All Test Suite:- You want to run all test classes which is under Smoke directory you will run using following command
robot-dReportsTestCases/Smoke/*.robot
  • Run Test Suites Parallel:- You want to run test suites in parallel mode you will run using following command . This will launch 3 browser windows as we have set --processes 3
pabot--processes3--outputdir"Reports"TestCases/*.robot

About

Robotframework SeleniumLibrary Python

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages