Try to use implicit waits to ensure that the objects are available to selenium.
Include this code in @BeforeTest or @BeforeSuite annotation which ensure the entire test suite will not run if this fails. You can also use try/catch to catch the error and throw exception. Choose whatever is best solution in your case
public static Boolean IsObjectExists(WebDriver driver, By locator) {
        driver.manage().timeouts().implicitlyWait(500, TimeUnit.MILLISECONDS);
        try {
            driver.findElement(locator);
            driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
            return true;
        } catch (NoSuchElementException e) {
            driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
            return false;
        }