System tests

4 functions that wait on different stages of element? What's the point? What is the function of the first 3 waits if not simply to finally wait for "isDisplayed"? Why not simply wait for "isDisplayed" directly? 
try{ driver.findElement(webDriver.By.css('input[ng-model ... ]) .isDisplayed().then(function(isDisplayed) { return isDIsplayed; } ); } catch(e) { return false }