diff --git a/test/package-lock.json b/test/package-lock.json index 05211fd..13760fd 100644 --- a/test/package-lock.json +++ b/test/package-lock.json @@ -10,6 +10,7 @@ "license": "ISC", "dependencies": { "chromedriver": "^120.0.1", + "safetydance": "^2.4.0", "selenium-webdriver": "^4.16.0" }, "devDependencies": { @@ -1083,6 +1084,14 @@ } ] }, + "node_modules/safetydance": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/safetydance/-/safetydance-2.4.0.tgz", + "integrity": "sha512-KsQJ5xpuv05yeLVMP6FTp8PNtj/iY5MxmirU2Bb6lf5EvKkZFr3Qrx9umV9/NrAvRfin8mhotJNAnBD3C3MUkw==", + "engines": [ + "node >= 4.0.0" + ] + }, "node_modules/selenium-webdriver": { "version": "4.16.0", "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.16.0.tgz", @@ -2130,6 +2139,11 @@ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true }, + "safetydance": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/safetydance/-/safetydance-2.4.0.tgz", + "integrity": "sha512-KsQJ5xpuv05yeLVMP6FTp8PNtj/iY5MxmirU2Bb6lf5EvKkZFr3Qrx9umV9/NrAvRfin8mhotJNAnBD3C3MUkw==" + }, "selenium-webdriver": { "version": "4.16.0", "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.16.0.tgz", diff --git a/test/package.json b/test/package.json index 486a6be..5d4fe33 100644 --- a/test/package.json +++ b/test/package.json @@ -14,6 +14,7 @@ }, "dependencies": { "chromedriver": "^120.0.1", + "safetydance": "^2.4.0", "selenium-webdriver": "^4.16.0" } } diff --git a/test/test.js b/test/test.js index 7efa62c..cdc1e14 100644 --- a/test/test.js +++ b/test/test.js @@ -14,6 +14,7 @@ const execSync = require('child_process').execSync, expect = require('expect.js'), readlinePromises = require('readline/promises'), path = require('path'), + safetydance = require('safetydance'), util = require('util'), { Builder, By, Key, until } = require('selenium-webdriver'), { Options } = require('selenium-webdriver/chrome'); @@ -126,7 +127,8 @@ describe('Application life cycle test', function () { await browser.get(`https://${app.fqdn}`); await browser.sleep(2000); - await waitForElement(By.xpath('//a[contains(text(), "Configure my instance")]')); + const [error] = await safe(waitForElement(By.xpath('//a[contains(text(), "Configure my instance")]'))); + if (error) return; // sometimes it doesn't appear, maybe it's cached in local storage await browser.findElement(By.xpath('//a[contains(text(), "Configure my instance")]')).click(); // this opens a new window let say_cmd = await getOS() == "Darwin" ? "say" : "spd-say";