Automate Browser Testing with Selenium
BrightSign users running OS 8.3.22 or above can now automate browser testing using the Selenium WebDriver and roHtmlWidget. Previously, Selenium could not establish a connection to BrightSign devices due to version number incompatibility.
The Selenium WebDriver can connect to roHtmlWidget through the Web Inspector and drive test cases. To establish this, enable a remote debugging port on roHtmlWidget:
roHtmlWidget creation
rect=CreateObject("roRectangle", 0, 0, width, height)
config = {
inspector_server: {port: 6813}
url: "about:blank"
}
htmlWidget = CreateObject("roHtmlWidget", rect, config)
The Chrome WebDriver and BrightSign Chromium version must match. Chromium 69 is built into BrightSignOS 8.3, so specify ChromeDriver 2.41.0 in package.json:
package.json
{
"dependencies": {
"chromedriver": "2.41.0",
"selenium-webdriver": "*"
}
}
The code block below connects to the remote inspector and loads a web page, showing how Selenium connects to a player and sends commands. Remote access (which is an optional parameter) is enabled here:
main.js
// main.js
var chromeDriver = require('chromedriver'), // Auto install ChromeDriver
webdriver = require('selenium-webdriver'),
By = webdriver.By,
until = webdriver.until;
var chrome = require("selenium-webdriver/chrome");
var options = new chrome.Options();
options.options_["debuggerAddress"] = "172.30.1.192:6813"; // Replace this with your own remote ip/port
var driver = new webdriver.Builder()
.forBrowser('chrome')
.setChromeOptions(options)
.build();
function start() {
driver.get('https://www.brightsign.biz');
setTimeout(function () {console.log('finished');}, 10000);
}
process.on('SIGTERM', function shutdown() {
driver.quit();
});
start();
Â
The selenium_test.tar.gz file below is a sample application. It should be extracted and installed on a desktop PC using npm install
:
This autorun.brs must be installed on the BrightSign player: