ОБНОВЛЕНИЕ: Проблема была с нажатием кнопки «Выход» в меню. Похоже, что тест выполняется слишком быстро, и поскольку наше приложение имеет элемент загрузчика между страницей входа и домашней страницей, тест попытался нажать кнопку выхода из системы, пока элемент загрузчика все еще присутствовал. Вот что я сделал:
Поскольку ExpectedConditions устарело в текущей версии WebDrivers, я скачал следующий пакет NuGet: DotNetSeleniumExtras.WaitHelpers
Я объявил переменную, которая определяла, как долго браузеру придется ждать, пока элемент будет доступен / доступен для нажатия, прежде чем выбрасывать тайм-аут, и исполнителю IJavaScript, который обрабатывает нажатие:
IJavaScriptExecutor executor = (IJavaScriptExecutor)browser;
var wait = new WebDriverWait(browser, new TimeSpan(0, 0, 10));
И, наконец, я изменил способ нажатия кнопки выхода из системы и кнопки подтверждения (внутри модального окна):
//Perform logout action
var buttonLogout = wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(By.XPath(".//div[@class='menu']/div/ul[@class='list']/li[last()]/a")));
executor.ExecuteScript("arguments[0].click();", buttonLogout);
//Locate confirm button in modal window
var buttonConfirm = wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(By.XPath(".//button[@class='swal-button swal-button--confirm']")));
executor.ExecuteScript("arguments[0].click();", buttonConfirm);
И теперь тест выполнен успешно!