mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 17:28:26 -04:00
Stabilize tests involving absolute timepicker (#10347)
Backports PR #10308 **Commit 1:** Stabilize tests involving absolute timepicker The asynchronous nature of angular's digest cycle and the page rendering in the browser can lead to situations in which `isGlobalLoadingIndicatorHidden()` returns true because the loading triggered by the previous action has not yet started. In this case subsequent actions incorrectly assume the loading has already been completed. This is probably responsible for the flakiness described in #10302. The newly introduced `waitUntilLoadingHasFinished` first waits for a duration up to `defaultTimeout` for the loading indicator to appear before waiting for it to be hidden again. In the best case this will reduce the false positive rate of `setAbsoluteTimerange()`. In the worst case the function will wait `defaultTimeout` longer than when just using `isGlobalLoadingIndicatorHidden`. fixes #10302 * Original sha:345421bd63
* Authored by Felix Stürmer <stuermer@weltenwort.de> on 2017-02-13T15:05:50Z **Commit 2:** Use findTestSubject * Original sha:3a2f3fc9eb
* Authored by Felix Stürmer <stuermer@weltenwort.de> on 2017-02-13T16:02:08Z **Commit 3:** Replace all usages of isGlobalLoadingIndicatorHidden * Original sha:27ad2447a5
* Authored by Felix Stürmer <stuermer@weltenwort.de> on 2017-02-13T17:49:56Z **Commit 4:** Introduce timeout argument to findTestSubject * Original sha:60ab85a295
* Authored by Felix Stürmer <stuermer@weltenwort.de> on 2017-02-14T16:05:28Z
This commit is contained in:
parent
8d1b5acc62
commit
9a7e105ec8
14 changed files with 87 additions and 61 deletions
|
@ -56,13 +56,13 @@ bdd.describe('creating and using Lucence expression scripted fields', function d
|
|||
await PageObjects.common.navigateToApp('discover');
|
||||
await PageObjects.common.debug('setAbsoluteRange (' + fromTime + ') to (' + toTime + ')');
|
||||
await PageObjects.header.setAbsoluteRange(fromTime, toTime);
|
||||
await PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await PageObjects.visualize.waitForVisualization();
|
||||
await PageObjects.discover.clickFieldListItem(scriptedExpressionFieldName);
|
||||
await PageObjects.common.try(async function() {
|
||||
await PageObjects.discover.clickFieldListItemAdd(scriptedExpressionFieldName);
|
||||
});
|
||||
await PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await PageObjects.visualize.waitForVisualization();
|
||||
await PageObjects.common.try(async function() {
|
||||
const rowData = await PageObjects.discover.getDocTableIndex(1);
|
||||
|
@ -75,7 +75,7 @@ bdd.describe('creating and using Lucence expression scripted fields', function d
|
|||
await PageObjects.discover.clickFieldListItem(scriptedExpressionFieldName);
|
||||
await PageObjects.common.debug('filter by the first value (14) in the expanded scripted field list');
|
||||
await PageObjects.discover.clickFieldListPlusFilter(scriptedExpressionFieldName, '14');
|
||||
await PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await PageObjects.visualize.waitForVisualization();
|
||||
await PageObjects.common.try(async function() {
|
||||
expect(await PageObjects.discover.getHitCount()).to.be('31');
|
||||
|
@ -90,7 +90,7 @@ bdd.describe('creating and using Lucence expression scripted fields', function d
|
|||
await PageObjects.discover.removeAllFilters();
|
||||
await PageObjects.discover.clickFieldListItem(scriptedExpressionFieldName);
|
||||
await PageObjects.discover.clickFieldListItemVisualize(scriptedExpressionFieldName);
|
||||
await PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await PageObjects.visualize.waitForVisualization();
|
||||
await PageObjects.visualize.collapseChart();
|
||||
await PageObjects.settings.setPageSize('All');
|
||||
|
@ -127,13 +127,13 @@ bdd.describe('creating and using Painless numeric scripted fields', function des
|
|||
await PageObjects.common.navigateToApp('discover');
|
||||
await PageObjects.common.debug('setAbsoluteRange (' + fromTime + ') to (' + toTime + ')');
|
||||
await PageObjects.header.setAbsoluteRange(fromTime, toTime);
|
||||
await PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await PageObjects.visualize.waitForVisualization();
|
||||
await PageObjects.discover.clickFieldListItem(scriptedPainlessFieldName);
|
||||
await PageObjects.common.try(async function() {
|
||||
await PageObjects.discover.clickFieldListItemAdd(scriptedPainlessFieldName);
|
||||
});
|
||||
await PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await PageObjects.visualize.waitForVisualization();
|
||||
await PageObjects.common.try(async function() {
|
||||
const rowData = await PageObjects.discover.getDocTableIndex(1);
|
||||
|
@ -145,7 +145,7 @@ bdd.describe('creating and using Painless numeric scripted fields', function des
|
|||
await PageObjects.discover.clickFieldListItem(scriptedPainlessFieldName);
|
||||
await PageObjects.common.debug('filter by the first value (14) in the expanded scripted field list');
|
||||
await PageObjects.discover.clickFieldListPlusFilter(scriptedPainlessFieldName, '14');
|
||||
await PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await PageObjects.visualize.waitForVisualization();
|
||||
await PageObjects.common.try(async function() {
|
||||
expect(await PageObjects.discover.getHitCount()).to.be('31');
|
||||
|
@ -160,7 +160,7 @@ bdd.describe('creating and using Painless numeric scripted fields', function des
|
|||
await PageObjects.discover.removeAllFilters();
|
||||
await PageObjects.discover.clickFieldListItem(scriptedPainlessFieldName);
|
||||
await PageObjects.discover.clickFieldListItemVisualize(scriptedPainlessFieldName);
|
||||
await PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await PageObjects.visualize.waitForVisualization();
|
||||
await PageObjects.visualize.collapseChart();
|
||||
await PageObjects.settings.setPageSize('All');
|
||||
|
@ -198,13 +198,13 @@ bdd.describe('creating and using Painless string scripted fields', function desc
|
|||
await PageObjects.common.navigateToApp('discover');
|
||||
await PageObjects.common.debug('setAbsoluteRange (' + fromTime + ') to (' + toTime + ')');
|
||||
await PageObjects.header.setAbsoluteRange(fromTime, toTime);
|
||||
await PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await PageObjects.visualize.waitForVisualization();
|
||||
await PageObjects.discover.clickFieldListItem(scriptedPainlessFieldName2);
|
||||
await PageObjects.common.try(async function() {
|
||||
await PageObjects.discover.clickFieldListItemAdd(scriptedPainlessFieldName2);
|
||||
});
|
||||
await PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await PageObjects.visualize.waitForVisualization();
|
||||
await PageObjects.common.try(async function() {
|
||||
const rowData = await PageObjects.discover.getDocTableIndex(1);
|
||||
|
@ -217,7 +217,7 @@ bdd.describe('creating and using Painless string scripted fields', function desc
|
|||
await PageObjects.discover.clickFieldListItem(scriptedPainlessFieldName2);
|
||||
await PageObjects.common.debug('filter by "bad" in the expanded scripted field list');
|
||||
await PageObjects.discover.clickFieldListPlusFilter(scriptedPainlessFieldName2, 'bad');
|
||||
await PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await PageObjects.visualize.waitForVisualization();
|
||||
await PageObjects.common.try(async function() {
|
||||
expect(await PageObjects.discover.getHitCount()).to.be('27');
|
||||
|
@ -228,7 +228,7 @@ bdd.describe('creating and using Painless string scripted fields', function desc
|
|||
bdd.it('should visualize scripted field in vertical bar chart', async function () {
|
||||
await PageObjects.discover.clickFieldListItem(scriptedPainlessFieldName2);
|
||||
await PageObjects.discover.clickFieldListItemVisualize(scriptedPainlessFieldName2);
|
||||
await PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await PageObjects.visualize.waitForVisualization();
|
||||
await PageObjects.visualize.collapseChart();
|
||||
await PageObjects.settings.setPageSize('All');
|
||||
|
@ -266,13 +266,13 @@ bdd.describe('creating and using Painless boolean scripted fields', function des
|
|||
await PageObjects.common.navigateToApp('discover');
|
||||
await PageObjects.common.debug('setAbsoluteRange (' + fromTime + ') to (' + toTime + ')');
|
||||
await PageObjects.header.setAbsoluteRange(fromTime, toTime);
|
||||
await PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await PageObjects.visualize.waitForVisualization();
|
||||
await PageObjects.discover.clickFieldListItem(scriptedPainlessFieldName2);
|
||||
await PageObjects.common.try(async function() {
|
||||
await PageObjects.discover.clickFieldListItemAdd(scriptedPainlessFieldName2);
|
||||
});
|
||||
await PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await PageObjects.visualize.waitForVisualization();
|
||||
await PageObjects.common.try(async function() {
|
||||
const rowData = await PageObjects.discover.getDocTableIndex(1);
|
||||
|
@ -285,7 +285,7 @@ bdd.describe('creating and using Painless boolean scripted fields', function des
|
|||
await PageObjects.discover.clickFieldListItem(scriptedPainlessFieldName2);
|
||||
await PageObjects.common.debug('filter by "true" in the expanded scripted field list');
|
||||
await PageObjects.discover.clickFieldListPlusFilter(scriptedPainlessFieldName2, 'true');
|
||||
await PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await PageObjects.visualize.waitForVisualization();
|
||||
await PageObjects.common.try(async function() {
|
||||
expect(await PageObjects.discover.getHitCount()).to.be('359');
|
||||
|
@ -296,7 +296,7 @@ bdd.describe('creating and using Painless boolean scripted fields', function des
|
|||
bdd.it('should visualize scripted field in vertical bar chart', async function () {
|
||||
await PageObjects.discover.clickFieldListItem(scriptedPainlessFieldName2);
|
||||
await PageObjects.discover.clickFieldListItemVisualize(scriptedPainlessFieldName2);
|
||||
await PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await PageObjects.visualize.waitForVisualization();
|
||||
await PageObjects.visualize.collapseChart();
|
||||
await PageObjects.settings.setPageSize('All');
|
||||
|
@ -335,13 +335,13 @@ bdd.describe('creating and using Painless date scripted fields', function descri
|
|||
await PageObjects.common.navigateToApp('discover');
|
||||
await PageObjects.common.debug('setAbsoluteRange (' + fromTime + ') to (' + toTime + ')');
|
||||
await PageObjects.header.setAbsoluteRange(fromTime, toTime);
|
||||
await PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await PageObjects.visualize.waitForVisualization();
|
||||
await PageObjects.discover.clickFieldListItem(scriptedPainlessFieldName2);
|
||||
await PageObjects.common.try(async function() {
|
||||
await PageObjects.discover.clickFieldListItemAdd(scriptedPainlessFieldName2);
|
||||
});
|
||||
await PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await PageObjects.visualize.waitForVisualization();
|
||||
await PageObjects.common.try(async function() {
|
||||
const rowData = await PageObjects.discover.getDocTableIndex(1);
|
||||
|
@ -353,7 +353,7 @@ bdd.describe('creating and using Painless date scripted fields', function descri
|
|||
await PageObjects.discover.clickFieldListItem(scriptedPainlessFieldName2);
|
||||
await PageObjects.common.debug('filter by "2015-09-17 23:00" in the expanded scripted field list');
|
||||
await PageObjects.discover.clickFieldListPlusFilter(scriptedPainlessFieldName2, '2015-09-17 23:00');
|
||||
await PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await PageObjects.visualize.waitForVisualization();
|
||||
await PageObjects.common.try(async function() {
|
||||
expect(await PageObjects.discover.getHitCount()).to.be('1');
|
||||
|
@ -364,7 +364,7 @@ bdd.describe('creating and using Painless date scripted fields', function descri
|
|||
bdd.it('should visualize scripted field in vertical bar chart', async function () {
|
||||
await PageObjects.discover.clickFieldListItem(scriptedPainlessFieldName2);
|
||||
await PageObjects.discover.clickFieldListItemVisualize(scriptedPainlessFieldName2);
|
||||
await PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await PageObjects.visualize.waitForVisualization();
|
||||
await PageObjects.visualize.collapseChart();
|
||||
await PageObjects.settings.setPageSize('All');
|
||||
|
|
|
@ -53,9 +53,9 @@ bdd.describe('visualize app', function describeIndexTests() {
|
|||
.then(function clickGo() {
|
||||
return PageObjects.visualize.clickGo();
|
||||
})
|
||||
.then(function isGlobalLoadingIndicatorHidden() {
|
||||
.then(function waitUntilLoadingHasFinished() {
|
||||
PageObjects.common.debug('Waiting...');
|
||||
return PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
return PageObjects.header.waitUntilLoadingHasFinished();
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -47,7 +47,7 @@ bdd.describe('visualize app', function describeIndexTests() {
|
|||
return PageObjects.visualize.clickGo();
|
||||
})
|
||||
.then(function () {
|
||||
return PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
return PageObjects.header.waitUntilLoadingHasFinished();
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ bdd.describe('visualize app', function describeIndexTests() {
|
|||
return PageObjects.visualize.clickGo();
|
||||
})
|
||||
.then(function () {
|
||||
return PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
return PageObjects.header.waitUntilLoadingHasFinished();
|
||||
})
|
||||
.then(function waitForVisualization() {
|
||||
return PageObjects.visualize.waitForVisualization();
|
||||
|
@ -66,7 +66,7 @@ bdd.describe('visualize app', function describeIndexTests() {
|
|||
return PageObjects.visualize.loadSavedVisualization(vizName1);
|
||||
})
|
||||
.then(function () {
|
||||
return PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
return PageObjects.header.waitUntilLoadingHasFinished();
|
||||
})
|
||||
.then(function waitForVisualization() {
|
||||
return PageObjects.visualize.waitForVisualization();
|
||||
|
|
|
@ -46,7 +46,7 @@ bdd.describe('visualize app', function describeIndexTests() {
|
|||
return PageObjects.visualize.clickGo();
|
||||
})
|
||||
.then(function () {
|
||||
return PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
return PageObjects.header.waitUntilLoadingHasFinished();
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ bdd.describe('visualize app', function describeIndexTests() {
|
|||
return PageObjects.visualize.selectField('memory');
|
||||
})
|
||||
.then(function () {
|
||||
return PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
return PageObjects.header.waitUntilLoadingHasFinished();
|
||||
})
|
||||
.then(function sleep() {
|
||||
return PageObjects.common.sleep(1003);
|
||||
|
@ -53,7 +53,7 @@ bdd.describe('visualize app', function describeIndexTests() {
|
|||
return PageObjects.visualize.clickGo();
|
||||
})
|
||||
.then(function () {
|
||||
return PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
return PageObjects.header.waitUntilLoadingHasFinished();
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -45,7 +45,7 @@ bdd.describe('visualize app', function describeIndexTests() {
|
|||
return PageObjects.visualize.clickGo();
|
||||
})
|
||||
.then(function () {
|
||||
return PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
return PageObjects.header.waitUntilLoadingHasFinished();
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ bdd.describe('visualize app', function describeIndexTests() {
|
|||
return PageObjects.visualize.clickGo();
|
||||
})
|
||||
.then(function () {
|
||||
return PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
return PageObjects.header.waitUntilLoadingHasFinished();
|
||||
})
|
||||
.then(function waitForVisualization() {
|
||||
return PageObjects.visualize.waitForVisualization();
|
||||
|
@ -66,7 +66,7 @@ bdd.describe('visualize app', function describeIndexTests() {
|
|||
return PageObjects.visualize.loadSavedVisualization(vizName1);
|
||||
})
|
||||
.then(function () {
|
||||
return PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
return PageObjects.header.waitUntilLoadingHasFinished();
|
||||
})
|
||||
.then(function waitForVisualization() {
|
||||
return PageObjects.visualize.waitForVisualization();
|
||||
|
|
|
@ -272,11 +272,20 @@ export default class Common {
|
|||
}
|
||||
}
|
||||
|
||||
findTestSubject(selector) {
|
||||
findTestSubject(selector, timeout = defaultFindTimeout) {
|
||||
this.debug('in findTestSubject: ' + testSubjSelector(selector));
|
||||
let originalFindTimeout = null;
|
||||
return this.remote
|
||||
.setFindTimeout(defaultFindTimeout)
|
||||
.findDisplayedByCssSelector(testSubjSelector(selector));
|
||||
.getFindTimeout()
|
||||
.then((findTimeout) => originalFindTimeout = findTimeout)
|
||||
.setFindTimeout(timeout)
|
||||
.findDisplayedByCssSelector(testSubjSelector(selector))
|
||||
.then(
|
||||
(result) => this.remote.setFindTimeout(originalFindTimeout)
|
||||
.finally(() => result),
|
||||
(error) => this.remote.setFindTimeout(originalFindTimeout)
|
||||
.finally(() => { throw error; }),
|
||||
);
|
||||
}
|
||||
|
||||
async findAllTestSubjects(selector) {
|
||||
|
|
|
@ -77,7 +77,7 @@ export default class DashboardPage {
|
|||
return PageObjects.common.findTestSubject('dashboardSaveButton')
|
||||
.click()
|
||||
.then(() => {
|
||||
return PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
return PageObjects.header.waitUntilLoadingHasFinished();
|
||||
})
|
||||
.then(() => {
|
||||
return PageObjects.common.sleep(1000);
|
||||
|
@ -89,7 +89,7 @@ export default class DashboardPage {
|
|||
.type(dashName);
|
||||
})
|
||||
.then(() => {
|
||||
return PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
return PageObjects.header.waitUntilLoadingHasFinished();
|
||||
})
|
||||
.then(() => {
|
||||
return PageObjects.common.sleep(1000);
|
||||
|
@ -104,7 +104,7 @@ export default class DashboardPage {
|
|||
});
|
||||
})
|
||||
.then(() => {
|
||||
return PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
return PageObjects.header.waitUntilLoadingHasFinished();
|
||||
})
|
||||
// verify that green message at the top of the page.
|
||||
// it's only there for about 5 seconds
|
||||
|
@ -136,7 +136,7 @@ export default class DashboardPage {
|
|||
.type(dashName.replace('-',' '));
|
||||
})
|
||||
.then(() => {
|
||||
return PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
return PageObjects.header.waitUntilLoadingHasFinished();
|
||||
})
|
||||
.then(() => {
|
||||
return PageObjects.common.sleep(1000);
|
||||
|
@ -146,7 +146,7 @@ export default class DashboardPage {
|
|||
.clickDashboardByLinkText(dashName);
|
||||
})
|
||||
.then(() => {
|
||||
return PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
return PageObjects.header.waitUntilLoadingHasFinished();
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -52,7 +52,7 @@ export default class DiscoverPage {
|
|||
this.findTimeout.findByLinkText(searchName).click();
|
||||
})
|
||||
.then(() => {
|
||||
return PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
return PageObjects.header.waitUntilLoadingHasFinished();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -81,7 +81,7 @@ export default class DiscoverPage {
|
|||
let yAxisLabel = 0;
|
||||
let yAxisHeight;
|
||||
|
||||
return PageObjects.header.isGlobalLoadingIndicatorHidden()
|
||||
return PageObjects.header.waitUntilLoadingHasFinished()
|
||||
.then(() => {
|
||||
return this.findTimeout
|
||||
.findByCssSelector('div.y-axis-div-wrapper > div > svg > g > g:last-of-type');
|
||||
|
@ -167,12 +167,12 @@ export default class DiscoverPage {
|
|||
.click();
|
||||
})
|
||||
.then(() => {
|
||||
return PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
return PageObjects.header.waitUntilLoadingHasFinished();
|
||||
});
|
||||
}
|
||||
|
||||
getHitCount() {
|
||||
return PageObjects.header.isGlobalLoadingIndicatorHidden()
|
||||
return PageObjects.header.waitUntilLoadingHasFinished()
|
||||
.then(() => {
|
||||
return PageObjects.common.findTestSubject('discoverQueryHits')
|
||||
.getVisibleText();
|
||||
|
@ -190,7 +190,7 @@ export default class DiscoverPage {
|
|||
.click();
|
||||
})
|
||||
.then(() => {
|
||||
return PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
return PageObjects.header.waitUntilLoadingHasFinished();
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -80,7 +80,7 @@ export default class HeaderPage {
|
|||
.findByClassName('kbn-timepicker-go')
|
||||
.click()
|
||||
.then(function () {
|
||||
return self.isGlobalLoadingIndicatorHidden();
|
||||
return self.waitUntilLoadingHasFinished();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -103,7 +103,7 @@ export default class HeaderPage {
|
|||
return this.clickGoButton();
|
||||
})
|
||||
.then(() => {
|
||||
return this.isGlobalLoadingIndicatorHidden();
|
||||
return this.waitUntilLoadingHasFinished();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -124,6 +124,23 @@ export default class HeaderPage {
|
|||
.click();
|
||||
}
|
||||
|
||||
async waitUntilLoadingHasFinished() {
|
||||
try {
|
||||
await this.isGlobalLoadingIndicatorVisible();
|
||||
} catch (exception) {
|
||||
if (exception.name === 'ElementNotVisible') {
|
||||
// selenium might just have been too slow to catch it
|
||||
} else {
|
||||
throw exception;
|
||||
}
|
||||
}
|
||||
await this.isGlobalLoadingIndicatorHidden();
|
||||
}
|
||||
|
||||
isGlobalLoadingIndicatorVisible() {
|
||||
return PageObjects.common.findTestSubject('globalLoadingIndicator', defaultFindTimeout / 5);
|
||||
}
|
||||
|
||||
isGlobalLoadingIndicatorHidden() {
|
||||
return this.remote.setFindTimeout(defaultFindTimeout * 10)
|
||||
.findByCssSelector('[data-test-subj="globalLoadingIndicator"].ng-hide');
|
||||
|
|
|
@ -39,13 +39,13 @@ export default class SettingsPage {
|
|||
async setAdvancedSettings(propertyName, propertyValue) {
|
||||
const self = this;
|
||||
await PageObjects.common.findTestSubject('advancedSetting-' + propertyName + '-editButton').click();
|
||||
await PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await PageObjects.common.sleep(1000);
|
||||
await this.remote.setFindTimeout(defaultFindTimeout)
|
||||
.findByCssSelector('option[label="' + propertyValue + '"]').click();
|
||||
await PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await PageObjects.common.findTestSubject('advancedSetting-' + propertyName + '-saveButton').click();
|
||||
await PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
}
|
||||
|
||||
async navigateTo() {
|
||||
|
@ -79,7 +79,7 @@ export default class SettingsPage {
|
|||
(await this.getTimeFieldNameField()).click();
|
||||
// close dropdown, keep focus
|
||||
(await this.getTimeFieldNameField()).click();
|
||||
await PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await PageObjects.common.try(async () => {
|
||||
(await this.getTimeFieldOption(selection)).click();
|
||||
const selected = (await this.getTimeFieldOption(selection)).isSelected();
|
||||
|
@ -100,7 +100,7 @@ export default class SettingsPage {
|
|||
async clickDefaultIndexButton() {
|
||||
await this.remote.setFindTimeout(defaultFindTimeout)
|
||||
.findByCssSelector('button.btn.btn-success.ng-scope').click();
|
||||
await PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
}
|
||||
|
||||
async clickDeletePattern() {
|
||||
|
@ -133,7 +133,7 @@ export default class SettingsPage {
|
|||
if (chartString === columnName) {
|
||||
return chart.click()
|
||||
.then(function () {
|
||||
return PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
return PageObjects.header.waitUntilLoadingHasFinished();
|
||||
});
|
||||
}
|
||||
});
|
||||
|
@ -212,7 +212,7 @@ export default class SettingsPage {
|
|||
.findByCssSelector('ul.pagination-other-pages-list.pagination-sm.ng-scope li.ng-scope:nth-child(' +
|
||||
(pageNum + 1) + ') a.ng-binding')
|
||||
.click();
|
||||
await PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
}
|
||||
|
||||
async openControlsRow(row) {
|
||||
|
@ -232,7 +232,7 @@ export default class SettingsPage {
|
|||
await this.remote.setFindTimeout(defaultFindTimeout)
|
||||
.findByCssSelector('button.btn.btn-default[aria-label="Plus"]')
|
||||
.click();
|
||||
await PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
}
|
||||
|
||||
getPopularity() {
|
||||
|
@ -245,21 +245,21 @@ export default class SettingsPage {
|
|||
await this.remote.setFindTimeout(defaultFindTimeout)
|
||||
.findByCssSelector('button.btn.btn-primary[aria-label="Cancel"]')
|
||||
.click();
|
||||
await PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
}
|
||||
|
||||
async controlChangeSave() {
|
||||
await this.remote.setFindTimeout(defaultFindTimeout)
|
||||
.findByCssSelector('button.btn.btn-success.ng-binding[aria-label="Update Field"]')
|
||||
.click();
|
||||
await PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
}
|
||||
|
||||
async setPageSize(size) {
|
||||
await this.remote.setFindTimeout(defaultFindTimeout)
|
||||
.findByCssSelector('form.form-inline.pagination-size.ng-scope.ng-pristine.ng-valid div.form-group option[label="' + size + '"]')
|
||||
.click();
|
||||
await PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
}
|
||||
|
||||
async createIndexPattern() {
|
||||
|
@ -269,7 +269,7 @@ export default class SettingsPage {
|
|||
await this.selectTimeFieldOption('@timestamp');
|
||||
await this.getCreateButton().click();
|
||||
});
|
||||
await PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await PageObjects.common.try(async () => {
|
||||
const currentUrl = await this.remote.getCurrentUrl();
|
||||
PageObjects.common.log('currentUrl', currentUrl);
|
||||
|
|
|
@ -292,7 +292,7 @@ export default class VisualizePage {
|
|||
.findByCssSelector('.btn-success')
|
||||
.click()
|
||||
.then(function () {
|
||||
return PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
return PageObjects.header.waitUntilLoadingHasFinished();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -316,7 +316,7 @@ export default class VisualizePage {
|
|||
.click();
|
||||
})
|
||||
.then(function () {
|
||||
return PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
return PageObjects.header.waitUntilLoadingHasFinished();
|
||||
})
|
||||
// verify that green message at the top of the page.
|
||||
// it's only there for about 5 seconds
|
||||
|
@ -712,7 +712,7 @@ export default class VisualizePage {
|
|||
return PageObjects.common.sleep(1000);
|
||||
})
|
||||
.then(() => {
|
||||
return PageObjects.header.isGlobalLoadingIndicatorHidden();
|
||||
return PageObjects.header.waitUntilLoadingHasFinished();
|
||||
});
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue