вот один пример из теста, при логине: логин/пароль -> ожидание -> нажатие кнопки входа - работает без ошибок( и на сервере и локально), если логин/пароль -> нажатие кнопки входа ( проходит только локально)
вам нужно ждать когда кнопка станет кликабельной. У вас Thread.sleep(1000). А если кнопка станет кликабельной позже чем через секунду? Опять все начнет падать. Почитайте про работу с ожиданиями Explicit Waits. Добавьте вместо Thread.sleep(1000) ожидание кликабельности вашей кнопки
Пример:
WebDriverWait wait= new WebDriverWait(driver, 30);
WebElement Element= wait.until(ExpectedConditions.elementToBeClickable(driver.findElement(By.xpath("Some Expression"))));
Element.click();
Что-то типа того