Merge pull request #4841 from cwillisf/test-failure-feedback

add timeouts & messages to all driver.wait calls
This commit is contained in:
Chris Willis-Ford authored and GitHub committed 2019-05-28 09:43:39 -07:00
commit 699671bde5
1 file changed
+11 -6
+11 -6
View File
@@ -8,6 +8,11 @@ const {By, until, Button} = webdriver;
const USE_HEADLESS = process.env.USE_HEADLESS !== 'no';
// The main reason for this timeout is so that we can control the timeout message and report details;
// if we hit the Jasmine default timeout then we get a terse message that we can't control.
// The Jasmine default timeout is 30 seconds so make sure this is lower.
const DEFAULT_TIMEOUT_MILLISECONDS = 20 * 1000;
class SeleniumHelper {
constructor () {
bindAll(this, [
@@ -26,8 +31,8 @@ class SeleniumHelper {
]);
}
elementIsVisible (element) {
return this.driver.wait(until.elementIsVisible(element));
elementIsVisible (element, timeoutMessage = 'elementIsVisible timed out') {
return this.driver.wait(until.elementIsVisible(element), DEFAULT_TIMEOUT_MILLISECONDS, timeoutMessage);
}
get scope () {
@@ -79,8 +84,8 @@ class SeleniumHelper {
return this.driver;
}
findByXpath (xpath) {
return this.driver.wait(until.elementLocated(By.xpath(xpath), 5 * 1000));
findByXpath (xpath, timeoutMessage = `findByXpath timed out for path: ${xpath}`) {
return this.driver.wait(until.elementLocated(By.xpath(xpath)), DEFAULT_TIMEOUT_MILLISECONDS, timeoutMessage);
}
findByText (text, scope) {
@@ -120,8 +125,8 @@ class SeleniumHelper {
return this.clickXpath(`//button//*[contains(text(), '${text}')]`);
}
waitUntilGone (element) {
return this.driver.wait(until.stalenessOf(element));
waitUntilGone (element, timeoutMessage = 'waitUntilGone timed out') {
return this.driver.wait(until.stalenessOf(element), DEFAULT_TIMEOUT_MILLISECONDS, timeoutMessage);
}
getLogs (whitelist) {