mirror of
https://github.com/node-red/node-red.git
synced 2025-03-01 10:36:34 +00:00
Fixed UI test problems caused by timing
This commit is contained in:
@@ -14,8 +14,13 @@
|
||||
* limitations under the License.
|
||||
**/
|
||||
|
||||
function open() {
|
||||
function open(retainMessage) {
|
||||
browser.clickWithWait('#red-ui-tab-debug-link-button');
|
||||
|
||||
if (!retainMessage) {
|
||||
// Clear old messages
|
||||
browser.clickWithWait('//a[@id="debug-tab-clear"]');
|
||||
}
|
||||
}
|
||||
|
||||
function getMessage(index) {
|
||||
|
@@ -73,6 +73,8 @@ function deploy() {
|
||||
});
|
||||
});
|
||||
browser.waitForText('#btn-deploy', 2000);
|
||||
// Need additional wait until buttons becomes clickable.
|
||||
browser.pause(50);
|
||||
}
|
||||
|
||||
function init(width, height) {
|
||||
|
@@ -34,7 +34,7 @@ functionNode.prototype.setFunction = function(func) {
|
||||
browser.keys(['Control', 'Shift', 'End', 'Shift', 'Control']);
|
||||
browser.keys(['Delete']);
|
||||
// Need to wait until ace editor correctly checks the syntax.
|
||||
browser.pause(50);
|
||||
browser.pause(300);
|
||||
}
|
||||
|
||||
module.exports = functionNode;
|
||||
|
@@ -41,6 +41,8 @@ templateNode.prototype.setTemplate = function(template) {
|
||||
}
|
||||
browser.keys(['Control', 'Shift', 'End', 'Shift', 'Control']);
|
||||
browser.keys(['Delete']);
|
||||
// Need to wait until ace editor correctly checks the syntax.
|
||||
browser.pause(300);
|
||||
}
|
||||
|
||||
module.exports = templateNode;
|
||||
|
@@ -29,6 +29,7 @@ Node.prototype.clickOk = function() {
|
||||
browser.clickWithWait('#node-dialog-ok');
|
||||
// Wait untile an edit dialog closes.
|
||||
browser.waitForVisible('#node-dialog-ok', 2000, true);
|
||||
browser.pause(50);
|
||||
}
|
||||
|
||||
Node.prototype.connect = function(targetNode) {
|
||||
|
@@ -14,35 +14,68 @@
|
||||
* limitations under the License.
|
||||
**/
|
||||
|
||||
var waitTime = 5000;
|
||||
|
||||
function repeatUntilSuccess(operation, args) {
|
||||
// Wait at most 10 seconds.
|
||||
for (var i = 0; i < 200; i++) {
|
||||
try {
|
||||
var ret = operation(args);
|
||||
return ret;
|
||||
} catch (e) {
|
||||
if (i === 199) {
|
||||
console.trace();
|
||||
throw e;
|
||||
}
|
||||
browser.pause(50);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function init() {
|
||||
browser.addCommand("clickWithWait", function(selector) {
|
||||
browser.waitForVisible(selector);
|
||||
// Wait at most 10 seconds.
|
||||
for (var i = 0; i < 50; i++) {
|
||||
try {
|
||||
var ret = browser.click(selector);
|
||||
return ret;
|
||||
} catch (err) {
|
||||
if (err.message.indexOf('is not clickable') !== -1) {
|
||||
browser.pause(200);
|
||||
} else {
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
try {
|
||||
// This is necessary because there is a case that the target may exist but still moving.
|
||||
browser.pause(50);
|
||||
browser.waitForVisible(selector);
|
||||
|
||||
var ret = repeatUntilSuccess(function(selector) {
|
||||
return browser.click(selector);
|
||||
}, selector);
|
||||
return ret;
|
||||
} catch (e) {
|
||||
console.trace();
|
||||
throw e;
|
||||
}
|
||||
}, false);
|
||||
|
||||
browser.addCommand("getTextWithWait", function(selector) {
|
||||
browser.waitForExist(selector);
|
||||
browser.waitForValue(selector);
|
||||
var ret = browser.getText(selector);
|
||||
return ret;
|
||||
try {
|
||||
browser.waitForExist(selector);
|
||||
browser.waitForValue(selector);
|
||||
|
||||
var ret = repeatUntilSuccess(function(selector) {
|
||||
return browser.getText(selector);
|
||||
}, selector);
|
||||
return ret;
|
||||
} catch (e) {
|
||||
console.trace();
|
||||
throw e;
|
||||
}
|
||||
}, false);
|
||||
|
||||
browser.addCommand("selectWithWait", function(selector, value) {
|
||||
browser.waitForVisible(selector, 5000);
|
||||
var ret = browser.selectByValue(selector, value);
|
||||
return ret;
|
||||
try {
|
||||
browser.waitForVisible(selector, waitTime);
|
||||
|
||||
var ret = repeatUntilSuccess(function(args) {
|
||||
return browser.selectByValue(args[0], args[1]);
|
||||
}, [selector, value]);
|
||||
return ret;
|
||||
} catch (e) {
|
||||
console.trace();
|
||||
throw e;
|
||||
}
|
||||
}, false);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user