Repository files navigation

Hello OpenFin Selenium Example

Overview

Included in this repository are simple example tests for the 'Hello OpenFin' app using the popular WebDriver JS Bindings, test frameworks and assertion libraries.
We have modified the latest Chrome driver to work with OpenFin Runtime.

Examples for the following WebDriver JS Bindings are included in this project:

  1. WebDriverJs / Selenium-WebDriver: test/WebDriverJs/Mocha
  2. WebDriverIO: test/WebDriverIO/Mocha
  3. WD: test/WD/Mocha
  4. Protractor: test/protractor

Guidelines

Since all HTML5 applications in the OpenFin environment need to be started with OpenFin API, chromeDriver.get(URL) is not supported.

ChromeDriver, by default, starts Chrome browser with various Chrome arguments, including remote debugging port, before running tests. ChromeOptions.setBinary needs to be called so ChromeDriver can start OpenFin Runtime properly. RunOpenFin.bat is an example batch file that can be set as 'binary'.

Given there can be multiple applications/windows active in OpenFin Runtime, tests must begin by selecting the targeted window. Each test script has a function that selects the window by matching it's title.

Since the OpenFin Runtime is started by OpenFinRVM, Chromedriver does not have direct control of the OpenFin Runtime. Chromedriver must be started before any test runs. Once a test is complete, it needs to shut down OpenFin Runtime by running javascript code "fin.desktop.System.exit();". driver.quit() does not shut down OpenFin Runtime since it does not have access.

In Summary

  • Tests must target specific windows
  • OpenFin RunTime must be shut down after a test is completed

Prerequisites

  1. Install Node.js
  2. Download/clone this repository and cd into it
  3. Install all the dependencies
npm install
  1. For Windows, install Hello OpenFin App
  2. For Mac, install OpenFin CLI
npm install -g openfin-cli

Usage

The following steps will help you run tests:

  1. Start chromedriver.exe. You can specify --verbose command line argument to get more loggings.
  2. Host test/app.json in a webserver, such as localhost:8000, and update test/config.js with the correct URL.
  3. Run the test for one bindings (replace [bindings] with WD, WIO or WJS)
npm run test[bindings]

Instructions for Protractor

The example code is written for the Super Calculator Angular demo app that is used in Quick Start of Protractor (http://angular.github.io/protractor/#/).

  1. Install Node.js
  2. Download/clone this repository and cd to test/protractor directory
  3. Install all the dependencies
npm install
  1. Start chromedriver.exe. You can specify --verbose command line argument to get more loggings.

  2. Host protractor/app.json on a web server. The default is http://localhost:9000/app.json.

  3. Run the example

npm run test

Instructions for Selenium Server

Two example scripts are included in this project to demonstrate use of Selenium Server.

  1. seleniumHub.bat/sh for launching Selenium Grid hub.
  2. seleniumNode.bat for launching Selenium Grid node.

config.js for each test needs to be modified to match IP and port of Selenium hub.

Disclaimers

  • This is a starter example and intended to demonstrate to app providers a sample of how to approach an implementation.
  • This is an open source project and all are encouraged to contribute.
  • As of runtime 29+, a new, single renderer process can appear if using view visibility settings in platfowm windows. This process will always have the URL openfin://blank and can be filtered out if desired.

License

MIT

The code in this repository is covered by the included license.

However, if you run this code, it may call on the OpenFin RVM or OpenFin Runtime, which are covered by OpenFin’s Developer, Community, and Enterprise licenses. You can learn more about OpenFin licensing at the links listed below or just email us at support@openfin.co with questions.

https://openfin.co/developer-agreement/
https://openfin.co/licensing/

Support

Please enter an issue in the repo for any questions or problems.
Alternatively, please contact us at support@openfin.co

About

Example of test code with Chrome Driver on OpenFin Runtime

Topics

Resources

Stars

12 stars

Watchers

26 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
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;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} 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

Hello OpenFin Selenium Example

Overview

Included in this repository are simple example tests for the 'Hello OpenFin' app using the popular WebDriver JS Bindings, test frameworks and assertion libraries.
We have modified the latest Chrome driver to work with OpenFin Runtime.

Examples for the following WebDriver JS Bindings are included in this project:

  1. WebDriverJs / Selenium-WebDriver: test/WebDriverJs/Mocha
  2. WebDriverIO: test/WebDriverIO/Mocha
  3. WD: test/WD/Mocha
  4. Protractor: test/protractor

Guidelines

Since all HTML5 applications in the OpenFin environment need to be started with OpenFin API, chromeDriver.get(URL) is not supported.

ChromeDriver, by default, starts Chrome browser with various Chrome arguments, including remote debugging port, before running tests. ChromeOptions.setBinary needs to be called so ChromeDriver can start OpenFin Runtime properly. RunOpenFin.bat is an example batch file that can be set as 'binary'.

Given there can be multiple applications/windows active in OpenFin Runtime, tests must begin by selecting the targeted window. Each test script has a function that selects the window by matching it's title.

Since the OpenFin Runtime is started by OpenFinRVM, Chromedriver does not have direct control of the OpenFin Runtime. Chromedriver must be started before any test runs. Once a test is complete, it needs to shut down OpenFin Runtime by running javascript code "fin.desktop.System.exit();". driver.quit() does not shut down OpenFin Runtime since it does not have access.

In Summary

  • Tests must target specific windows
  • OpenFin RunTime must be shut down after a test is completed

Prerequisites

  1. Install Node.js
  2. Download/clone this repository and cd into it
  3. Install all the dependencies
npm install
  1. For Windows, install Hello OpenFin App
  2. For Mac, install OpenFin CLI
npm install -g openfin-cli

Usage

The following steps will help you run tests:

  1. Start chromedriver.exe. You can specify --verbose command line argument to get more loggings.
  2. Host test/app.json in a webserver, such as localhost:8000, and update test/config.js with the correct URL.
  3. Run the test for one bindings (replace [bindings] with WD, WIO or WJS)
npm run test[bindings]

Instructions for Protractor

The example code is written for the Super Calculator Angular demo app that is used in Quick Start of Protractor (http://angular.github.io/protractor/#/).

  1. Install Node.js
  2. Download/clone this repository and cd to test/protractor directory
  3. Install all the dependencies
npm install
  1. Start chromedriver.exe. You can specify --verbose command line argument to get more loggings.

  2. Host protractor/app.json on a web server. The default is http://localhost:9000/app.json.

  3. Run the example

npm run test

Instructions for Selenium Server

Two example scripts are included in this project to demonstrate use of Selenium Server.

  1. seleniumHub.bat/sh for launching Selenium Grid hub.
  2. seleniumNode.bat for launching Selenium Grid node.

config.js for each test needs to be modified to match IP and port of Selenium hub.

Disclaimers

  • This is a starter example and intended to demonstrate to app providers a sample of how to approach an implementation.
  • This is an open source project and all are encouraged to contribute.
  • As of runtime 29+, a new, single renderer process can appear if using view visibility settings in platfowm windows. This process will always have the URL openfin://blank and can be filtered out if desired.

License

MIT

The code in this repository is covered by the included license.

However, if you run this code, it may call on the OpenFin RVM or OpenFin Runtime, which are covered by OpenFin’s Developer, Community, and Enterprise licenses. You can learn more about OpenFin licensing at the links listed below or just email us at support@openfin.co with questions.

https://openfin.co/developer-agreement/
https://openfin.co/licensing/

Support

Please enter an issue in the repo for any questions or problems.
Alternatively, please contact us at support@openfin.co

About

Example of test code with Chrome Driver on OpenFin Runtime

Topics

Resources

Stars

12 stars

Watchers

26 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } 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

Hello OpenFin Selenium Example

Overview

Included in this repository are simple example tests for the 'Hello OpenFin' app using the popular WebDriver JS Bindings, test frameworks and assertion libraries.
We have modified the latest Chrome driver to work with OpenFin Runtime.

Examples for the following WebDriver JS Bindings are included in this project:

  1. WebDriverJs / Selenium-WebDriver: test/WebDriverJs/Mocha
  2. WebDriverIO: test/WebDriverIO/Mocha
  3. WD: test/WD/Mocha
  4. Protractor: test/protractor

Guidelines

Since all HTML5 applications in the OpenFin environment need to be started with OpenFin API, chromeDriver.get(URL) is not supported.

ChromeDriver, by default, starts Chrome browser with various Chrome arguments, including remote debugging port, before running tests. ChromeOptions.setBinary needs to be called so ChromeDriver can start OpenFin Runtime properly. RunOpenFin.bat is an example batch file that can be set as 'binary'.

Given there can be multiple applications/windows active in OpenFin Runtime, tests must begin by selecting the targeted window. Each test script has a function that selects the window by matching it's title.

Since the OpenFin Runtime is started by OpenFinRVM, Chromedriver does not have direct control of the OpenFin Runtime. Chromedriver must be started before any test runs. Once a test is complete, it needs to shut down OpenFin Runtime by running javascript code "fin.desktop.System.exit();". driver.quit() does not shut down OpenFin Runtime since it does not have access.

In Summary

  • Tests must target specific windows
  • OpenFin RunTime must be shut down after a test is completed

Prerequisites

  1. Install Node.js
  2. Download/clone this repository and cd into it
  3. Install all the dependencies
npm install
  1. For Windows, install Hello OpenFin App
  2. For Mac, install OpenFin CLI
npm install -g openfin-cli

Usage

The following steps will help you run tests:

  1. Start chromedriver.exe. You can specify --verbose command line argument to get more loggings.
  2. Host test/app.json in a webserver, such as localhost:8000, and update test/config.js with the correct URL.
  3. Run the test for one bindings (replace [bindings] with WD, WIO or WJS)
npm run test[bindings]

Instructions for Protractor

The example code is written for the Super Calculator Angular demo app that is used in Quick Start of Protractor (http://angular.github.io/protractor/#/).

  1. Install Node.js
  2. Download/clone this repository and cd to test/protractor directory
  3. Install all the dependencies
npm install
  1. Start chromedriver.exe. You can specify --verbose command line argument to get more loggings.

  2. Host protractor/app.json on a web server. The default is http://localhost:9000/app.json.

  3. Run the example

npm run test

Instructions for Selenium Server

Two example scripts are included in this project to demonstrate use of Selenium Server.

  1. seleniumHub.bat/sh for launching Selenium Grid hub.
  2. seleniumNode.bat for launching Selenium Grid node.

config.js for each test needs to be modified to match IP and port of Selenium hub.

Disclaimers

  • This is a starter example and intended to demonstrate to app providers a sample of how to approach an implementation.
  • This is an open source project and all are encouraged to contribute.
  • As of runtime 29+, a new, single renderer process can appear if using view visibility settings in platfowm windows. This process will always have the URL openfin://blank and can be filtered out if desired.

License

MIT

The code in this repository is covered by the included license.

However, if you run this code, it may call on the OpenFin RVM or OpenFin Runtime, which are covered by OpenFin’s Developer, Community, and Enterprise licenses. You can learn more about OpenFin licensing at the links listed below or just email us at support@openfin.co with questions.

https://openfin.co/developer-agreement/
https://openfin.co/licensing/

Support

Please enter an issue in the repo for any questions or problems.
Alternatively, please contact us at support@openfin.co

About

Example of test code with Chrome Driver on OpenFin Runtime

Topics

Resources

Stars

12 stars

Watchers

26 watching

Forks

Releases

Packages

Used by

Contributors

Languages

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

Repository files navigation

Hello OpenFin Selenium Example

Overview

Included in this repository are simple example tests for the 'Hello OpenFin' app using the popular WebDriver JS Bindings, test frameworks and assertion libraries.
We have modified the latest Chrome driver to work with OpenFin Runtime.

Examples for the following WebDriver JS Bindings are included in this project:

  1. WebDriverJs / Selenium-WebDriver: test/WebDriverJs/Mocha
  2. WebDriverIO: test/WebDriverIO/Mocha
  3. WD: test/WD/Mocha
  4. Protractor: test/protractor

Guidelines

Since all HTML5 applications in the OpenFin environment need to be started with OpenFin API, chromeDriver.get(URL) is not supported.

ChromeDriver, by default, starts Chrome browser with various Chrome arguments, including remote debugging port, before running tests. ChromeOptions.setBinary needs to be called so ChromeDriver can start OpenFin Runtime properly. RunOpenFin.bat is an example batch file that can be set as 'binary'.

Given there can be multiple applications/windows active in OpenFin Runtime, tests must begin by selecting the targeted window. Each test script has a function that selects the window by matching it's title.

Since the OpenFin Runtime is started by OpenFinRVM, Chromedriver does not have direct control of the OpenFin Runtime. Chromedriver must be started before any test runs. Once a test is complete, it needs to shut down OpenFin Runtime by running javascript code "fin.desktop.System.exit();". driver.quit() does not shut down OpenFin Runtime since it does not have access.

In Summary

  • Tests must target specific windows
  • OpenFin RunTime must be shut down after a test is completed

Prerequisites

  1. Install Node.js
  2. Download/clone this repository and cd into it
  3. Install all the dependencies
npm install
  1. For Windows, install Hello OpenFin App
  2. For Mac, install OpenFin CLI
npm install -g openfin-cli

Usage

The following steps will help you run tests:

  1. Start chromedriver.exe. You can specify --verbose command line argument to get more loggings.
  2. Host test/app.json in a webserver, such as localhost:8000, and update test/config.js with the correct URL.
  3. Run the test for one bindings (replace [bindings] with WD, WIO or WJS)
npm run test[bindings]

Instructions for Protractor

The example code is written for the Super Calculator Angular demo app that is used in Quick Start of Protractor (http://angular.github.io/protractor/#/).

  1. Install Node.js
  2. Download/clone this repository and cd to test/protractor directory
  3. Install all the dependencies
npm install
  1. Start chromedriver.exe. You can specify --verbose command line argument to get more loggings.

  2. Host protractor/app.json on a web server. The default is http://localhost:9000/app.json.

  3. Run the example

npm run test

Instructions for Selenium Server

Two example scripts are included in this project to demonstrate use of Selenium Server.

  1. seleniumHub.bat/sh for launching Selenium Grid hub.
  2. seleniumNode.bat for launching Selenium Grid node.

config.js for each test needs to be modified to match IP and port of Selenium hub.

Disclaimers

  • This is a starter example and intended to demonstrate to app providers a sample of how to approach an implementation.
  • This is an open source project and all are encouraged to contribute.
  • As of runtime 29+, a new, single renderer process can appear if using view visibility settings in platfowm windows. This process will always have the URL openfin://blank and can be filtered out if desired.

License

MIT

The code in this repository is covered by the included license.

However, if you run this code, it may call on the OpenFin RVM or OpenFin Runtime, which are covered by OpenFin’s Developer, Community, and Enterprise licenses. You can learn more about OpenFin licensing at the links listed below or just email us at support@openfin.co with questions.

https://openfin.co/developer-agreement/
https://openfin.co/licensing/

Support

Please enter an issue in the repo for any questions or problems.
Alternatively, please contact us at support@openfin.co

About

Example of test code with Chrome Driver on OpenFin Runtime

Topics

Resources

Stars

12 stars

Watchers

26 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } 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

Hello OpenFin Selenium Example

Overview

Included in this repository are simple example tests for the 'Hello OpenFin' app using the popular WebDriver JS Bindings, test frameworks and assertion libraries.
We have modified the latest Chrome driver to work with OpenFin Runtime.

Examples for the following WebDriver JS Bindings are included in this project:

  1. WebDriverJs / Selenium-WebDriver: test/WebDriverJs/Mocha
  2. WebDriverIO: test/WebDriverIO/Mocha
  3. WD: test/WD/Mocha
  4. Protractor: test/protractor

Guidelines

Since all HTML5 applications in the OpenFin environment need to be started with OpenFin API, chromeDriver.get(URL) is not supported.

ChromeDriver, by default, starts Chrome browser with various Chrome arguments, including remote debugging port, before running tests. ChromeOptions.setBinary needs to be called so ChromeDriver can start OpenFin Runtime properly. RunOpenFin.bat is an example batch file that can be set as 'binary'.

Given there can be multiple applications/windows active in OpenFin Runtime, tests must begin by selecting the targeted window. Each test script has a function that selects the window by matching it's title.

Since the OpenFin Runtime is started by OpenFinRVM, Chromedriver does not have direct control of the OpenFin Runtime. Chromedriver must be started before any test runs. Once a test is complete, it needs to shut down OpenFin Runtime by running javascript code "fin.desktop.System.exit();". driver.quit() does not shut down OpenFin Runtime since it does not have access.

In Summary

  • Tests must target specific windows
  • OpenFin RunTime must be shut down after a test is completed

Prerequisites

  1. Install Node.js
  2. Download/clone this repository and cd into it
  3. Install all the dependencies
npm install
  1. For Windows, install Hello OpenFin App
  2. For Mac, install OpenFin CLI
npm install -g openfin-cli

Usage

The following steps will help you run tests:

  1. Start chromedriver.exe. You can specify --verbose command line argument to get more loggings.
  2. Host test/app.json in a webserver, such as localhost:8000, and update test/config.js with the correct URL.
  3. Run the test for one bindings (replace [bindings] with WD, WIO or WJS)
npm run test[bindings]

Instructions for Protractor

The example code is written for the Super Calculator Angular demo app that is used in Quick Start of Protractor (http://angular.github.io/protractor/#/).

  1. Install Node.js
  2. Download/clone this repository and cd to test/protractor directory
  3. Install all the dependencies
npm install
  1. Start chromedriver.exe. You can specify --verbose command line argument to get more loggings.

  2. Host protractor/app.json on a web server. The default is http://localhost:9000/app.json.

  3. Run the example

npm run test

Instructions for Selenium Server

Two example scripts are included in this project to demonstrate use of Selenium Server.

  1. seleniumHub.bat/sh for launching Selenium Grid hub.
  2. seleniumNode.bat for launching Selenium Grid node.

config.js for each test needs to be modified to match IP and port of Selenium hub.

Disclaimers

  • This is a starter example and intended to demonstrate to app providers a sample of how to approach an implementation.
  • This is an open source project and all are encouraged to contribute.
  • As of runtime 29+, a new, single renderer process can appear if using view visibility settings in platfowm windows. This process will always have the URL openfin://blank and can be filtered out if desired.

License

MIT

The code in this repository is covered by the included license.

However, if you run this code, it may call on the OpenFin RVM or OpenFin Runtime, which are covered by OpenFin’s Developer, Community, and Enterprise licenses. You can learn more about OpenFin licensing at the links listed below or just email us at support@openfin.co with questions.

https://openfin.co/developer-agreement/
https://openfin.co/licensing/

Support

Please enter an issue in the repo for any questions or problems.
Alternatively, please contact us at support@openfin.co

About

Example of test code with Chrome Driver on OpenFin Runtime

Topics

Resources

Stars

12 stars

Watchers

26 watching

Forks

Releases

Packages

Used by

Contributors

Languages

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

Repository files navigation

Hello OpenFin Selenium Example

Overview

Included in this repository are simple example tests for the 'Hello OpenFin' app using the popular WebDriver JS Bindings, test frameworks and assertion libraries.
We have modified the latest Chrome driver to work with OpenFin Runtime.

Examples for the following WebDriver JS Bindings are included in this project:

  1. WebDriverJs / Selenium-WebDriver: test/WebDriverJs/Mocha
  2. WebDriverIO: test/WebDriverIO/Mocha
  3. WD: test/WD/Mocha
  4. Protractor: test/protractor

Guidelines

Since all HTML5 applications in the OpenFin environment need to be started with OpenFin API, chromeDriver.get(URL) is not supported.

ChromeDriver, by default, starts Chrome browser with various Chrome arguments, including remote debugging port, before running tests. ChromeOptions.setBinary needs to be called so ChromeDriver can start OpenFin Runtime properly. RunOpenFin.bat is an example batch file that can be set as 'binary'.

Given there can be multiple applications/windows active in OpenFin Runtime, tests must begin by selecting the targeted window. Each test script has a function that selects the window by matching it's title.

Since the OpenFin Runtime is started by OpenFinRVM, Chromedriver does not have direct control of the OpenFin Runtime. Chromedriver must be started before any test runs. Once a test is complete, it needs to shut down OpenFin Runtime by running javascript code "fin.desktop.System.exit();". driver.quit() does not shut down OpenFin Runtime since it does not have access.

In Summary

  • Tests must target specific windows
  • OpenFin RunTime must be shut down after a test is completed

Prerequisites

  1. Install Node.js
  2. Download/clone this repository and cd into it
  3. Install all the dependencies
npm install
  1. For Windows, install Hello OpenFin App
  2. For Mac, install OpenFin CLI
npm install -g openfin-cli

Usage

The following steps will help you run tests:

  1. Start chromedriver.exe. You can specify --verbose command line argument to get more loggings.
  2. Host test/app.json in a webserver, such as localhost:8000, and update test/config.js with the correct URL.
  3. Run the test for one bindings (replace [bindings] with WD, WIO or WJS)
npm run test[bindings]

Instructions for Protractor

The example code is written for the Super Calculator Angular demo app that is used in Quick Start of Protractor (http://angular.github.io/protractor/#/).

  1. Install Node.js
  2. Download/clone this repository and cd to test/protractor directory
  3. Install all the dependencies
npm install
  1. Start chromedriver.exe. You can specify --verbose command line argument to get more loggings.

  2. Host protractor/app.json on a web server. The default is http://localhost:9000/app.json.

  3. Run the example

npm run test

Instructions for Selenium Server

Two example scripts are included in this project to demonstrate use of Selenium Server.

  1. seleniumHub.bat/sh for launching Selenium Grid hub.
  2. seleniumNode.bat for launching Selenium Grid node.

config.js for each test needs to be modified to match IP and port of Selenium hub.

Disclaimers

  • This is a starter example and intended to demonstrate to app providers a sample of how to approach an implementation.
  • This is an open source project and all are encouraged to contribute.
  • As of runtime 29+, a new, single renderer process can appear if using view visibility settings in platfowm windows. This process will always have the URL openfin://blank and can be filtered out if desired.

License

MIT

The code in this repository is covered by the included license.

However, if you run this code, it may call on the OpenFin RVM or OpenFin Runtime, which are covered by OpenFin’s Developer, Community, and Enterprise licenses. You can learn more about OpenFin licensing at the links listed below or just email us at support@openfin.co with questions.

https://openfin.co/developer-agreement/
https://openfin.co/licensing/

Support

Please enter an issue in the repo for any questions or problems.
Alternatively, please contact us at support@openfin.co

About

Example of test code with Chrome Driver on OpenFin Runtime

Topics

Resources

Stars

12 stars

Watchers

26 watching

Forks

Releases

Packages

Used by

Contributors

Languages

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

Repository files navigation

Hello OpenFin Selenium Example

Overview

Included in this repository are simple example tests for the 'Hello OpenFin' app using the popular WebDriver JS Bindings, test frameworks and assertion libraries.
We have modified the latest Chrome driver to work with OpenFin Runtime.

Examples for the following WebDriver JS Bindings are included in this project:

  1. WebDriverJs / Selenium-WebDriver: test/WebDriverJs/Mocha
  2. WebDriverIO: test/WebDriverIO/Mocha
  3. WD: test/WD/Mocha
  4. Protractor: test/protractor

Guidelines

Since all HTML5 applications in the OpenFin environment need to be started with OpenFin API, chromeDriver.get(URL) is not supported.

ChromeDriver, by default, starts Chrome browser with various Chrome arguments, including remote debugging port, before running tests. ChromeOptions.setBinary needs to be called so ChromeDriver can start OpenFin Runtime properly. RunOpenFin.bat is an example batch file that can be set as 'binary'.

Given there can be multiple applications/windows active in OpenFin Runtime, tests must begin by selecting the targeted window. Each test script has a function that selects the window by matching it's title.

Since the OpenFin Runtime is started by OpenFinRVM, Chromedriver does not have direct control of the OpenFin Runtime. Chromedriver must be started before any test runs. Once a test is complete, it needs to shut down OpenFin Runtime by running javascript code "fin.desktop.System.exit();". driver.quit() does not shut down OpenFin Runtime since it does not have access.

In Summary

  • Tests must target specific windows
  • OpenFin RunTime must be shut down after a test is completed

Prerequisites

  1. Install Node.js
  2. Download/clone this repository and cd into it
  3. Install all the dependencies
npm install
  1. For Windows, install Hello OpenFin App
  2. For Mac, install OpenFin CLI
npm install -g openfin-cli

Usage

The following steps will help you run tests:

  1. Start chromedriver.exe. You can specify --verbose command line argument to get more loggings.
  2. Host test/app.json in a webserver, such as localhost:8000, and update test/config.js with the correct URL.
  3. Run the test for one bindings (replace [bindings] with WD, WIO or WJS)
npm run test[bindings]

Instructions for Protractor

The example code is written for the Super Calculator Angular demo app that is used in Quick Start of Protractor (http://angular.github.io/protractor/#/).

  1. Install Node.js
  2. Download/clone this repository and cd to test/protractor directory
  3. Install all the dependencies
npm install
  1. Start chromedriver.exe. You can specify --verbose command line argument to get more loggings.

  2. Host protractor/app.json on a web server. The default is http://localhost:9000/app.json.

  3. Run the example

npm run test

Instructions for Selenium Server

Two example scripts are included in this project to demonstrate use of Selenium Server.

  1. seleniumHub.bat/sh for launching Selenium Grid hub.
  2. seleniumNode.bat for launching Selenium Grid node.

config.js for each test needs to be modified to match IP and port of Selenium hub.

Disclaimers

  • This is a starter example and intended to demonstrate to app providers a sample of how to approach an implementation.
  • This is an open source project and all are encouraged to contribute.
  • As of runtime 29+, a new, single renderer process can appear if using view visibility settings in platfowm windows. This process will always have the URL openfin://blank and can be filtered out if desired.

License

MIT

The code in this repository is covered by the included license.

However, if you run this code, it may call on the OpenFin RVM or OpenFin Runtime, which are covered by OpenFin’s Developer, Community, and Enterprise licenses. You can learn more about OpenFin licensing at the links listed below or just email us at support@openfin.co with questions.

https://openfin.co/developer-agreement/
https://openfin.co/licensing/

Support

Please enter an issue in the repo for any questions or problems.
Alternatively, please contact us at support@openfin.co

About

Example of test code with Chrome Driver on OpenFin Runtime

Topics

Resources

Stars

12 stars

Watchers

26 watching

Forks

Releases

Packages

Used by

Contributors

Languages

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

Repository files navigation

Hello OpenFin Selenium Example

Overview

Included in this repository are simple example tests for the 'Hello OpenFin' app using the popular WebDriver JS Bindings, test frameworks and assertion libraries.
We have modified the latest Chrome driver to work with OpenFin Runtime.

Examples for the following WebDriver JS Bindings are included in this project:

  1. WebDriverJs / Selenium-WebDriver: test/WebDriverJs/Mocha
  2. WebDriverIO: test/WebDriverIO/Mocha
  3. WD: test/WD/Mocha
  4. Protractor: test/protractor

Guidelines

Since all HTML5 applications in the OpenFin environment need to be started with OpenFin API, chromeDriver.get(URL) is not supported.

ChromeDriver, by default, starts Chrome browser with various Chrome arguments, including remote debugging port, before running tests. ChromeOptions.setBinary needs to be called so ChromeDriver can start OpenFin Runtime properly. RunOpenFin.bat is an example batch file that can be set as 'binary'.

Given there can be multiple applications/windows active in OpenFin Runtime, tests must begin by selecting the targeted window. Each test script has a function that selects the window by matching it's title.

Since the OpenFin Runtime is started by OpenFinRVM, Chromedriver does not have direct control of the OpenFin Runtime. Chromedriver must be started before any test runs. Once a test is complete, it needs to shut down OpenFin Runtime by running javascript code "fin.desktop.System.exit();". driver.quit() does not shut down OpenFin Runtime since it does not have access.

In Summary

  • Tests must target specific windows
  • OpenFin RunTime must be shut down after a test is completed

Prerequisites

  1. Install Node.js
  2. Download/clone this repository and cd into it
  3. Install all the dependencies
npm install
  1. For Windows, install Hello OpenFin App
  2. For Mac, install OpenFin CLI
npm install -g openfin-cli

Usage

The following steps will help you run tests:

  1. Start chromedriver.exe. You can specify --verbose command line argument to get more loggings.
  2. Host test/app.json in a webserver, such as localhost:8000, and update test/config.js with the correct URL.
  3. Run the test for one bindings (replace [bindings] with WD, WIO or WJS)
npm run test[bindings]

Instructions for Protractor

The example code is written for the Super Calculator Angular demo app that is used in Quick Start of Protractor (http://angular.github.io/protractor/#/).

  1. Install Node.js
  2. Download/clone this repository and cd to test/protractor directory
  3. Install all the dependencies
npm install
  1. Start chromedriver.exe. You can specify --verbose command line argument to get more loggings.

  2. Host protractor/app.json on a web server. The default is http://localhost:9000/app.json.

  3. Run the example

npm run test

Instructions for Selenium Server

Two example scripts are included in this project to demonstrate use of Selenium Server.

  1. seleniumHub.bat/sh for launching Selenium Grid hub.
  2. seleniumNode.bat for launching Selenium Grid node.

config.js for each test needs to be modified to match IP and port of Selenium hub.

Disclaimers

  • This is a starter example and intended to demonstrate to app providers a sample of how to approach an implementation.
  • This is an open source project and all are encouraged to contribute.
  • As of runtime 29+, a new, single renderer process can appear if using view visibility settings in platfowm windows. This process will always have the URL openfin://blank and can be filtered out if desired.

License

MIT

The code in this repository is covered by the included license.

However, if you run this code, it may call on the OpenFin RVM or OpenFin Runtime, which are covered by OpenFin’s Developer, Community, and Enterprise licenses. You can learn more about OpenFin licensing at the links listed below or just email us at support@openfin.co with questions.

https://openfin.co/developer-agreement/
https://openfin.co/licensing/

Support

Please enter an issue in the repo for any questions or problems.
Alternatively, please contact us at support@openfin.co

About

Example of test code with Chrome Driver on OpenFin Runtime

Topics

Resources

Stars

12 stars

Watchers

26 watching

Forks

Releases

Packages

Used by

Contributors

Languages