Versions
- OpenTest --version 1.2.2
- ChromeDriver 85.0.4183.87
Including the external javascript files I require will always throw something like:
Caused by: java.lang.RuntimeException: Failed to evaluate JavaScript code at line number 1. The script content was:
$include(["signalr.min.js", "signalr.tests.js"]);
...
Caused by: java.lang.RuntimeException: Failed to run script file signalr.min.js
...
Caused by: javax.script.ScriptException: ReferenceError: "window" is not defined in <eval> at line number 1
I followed the docs at:
- https://getopentest.org/reference/javascript-api.html#includeincludesource
- https://getopentest.org/docs/scripting-support.html#external-script-files
But none of the combinations I tried seems to work, I guess I'm missing something :(
I have the actor.yml configured with the chrome web-driver like this:
# Selenium options
selenium:
# seleniumServerUrl: http://127.0.0.1:9515
desiredCapabilities:
browserName: chrome
chromeOptions:
args: [ --start-maximized ]
chromeDriverExePath: C:/Webdrivers/chromedriver.exe
chromeDriverExeArgs: [--start-maximized, --ignore-certificate-errors, --disable-popup-blocking, --disable-extensions-file-access-check, "--test-name", "--disable-extensions", "--disable-notifications", "--disable-web-security", "--disable-prompt-on-repost", "--browser-test", "--dom-automation", "--enable-caret-browsing", "--expose-internals-for-testing", "--force-login-manager-in-tests" ]
An example of the test in question:
description: My Test
actors:
- actor: ACTOR1
segments:
- segment: 1
actions:
- description: include external SignalR script files
script: |
$include(["signalr.min.js", "signalr.tests.js"]);
- description: Initialize SignalR Connection
action: org.getopentest.selenium.ExecuteScript
args:
scriptArgs: $data("config").webChatUrl + $data("config").apiV1SignalRChathub
script: |
var hubUrl = arguments[0];
SignalRConnectionTest(hubUrl);
The signalr.min.js can be found at: https://cdnjs.cloudflare.com/ajax/libs/microsoft-signalr/3.1.7/signalr.min.js
So after a lot of trail and error I managed to get something working. I never got the script-includes working in OpenTest. I figure that is because there are issues when the browser is not opened (yet), and so the
window
will just be undefined. So basically you can only include scripts that do not use the DOM...What I did, was create a "local" html page that runs some of the javascript, and call that page from the OpenTest yml with some checks. here is an example of what I did: