/// <summary> /// Метод выполняет последовательно действия, переданные в него коллекцией. /// В зависимости от значения cbDebugMode, метод завершает текущее действие и переходит к следующему при появлении исключения, /// либо останавливается на исключении. /// </summary> /// <param name="TestCases">Список действий (методов) для последовательного выполнения. Методы не должны возвращать значение</param> public static void Execute(List <Action> TestCases) { foreach (Action TestCase in TestCases) { try { TestCase.Invoke(); } catch (OpenQA.Selenium.UnhandledAlertException) { Log.MesQuestion("неожиданное модальное окно. <a href=\"" + ScreenCapture.Printscreen() + "\">скриншот</a>"); BitrixFramework.Wait(5); BitrixFramework.BrowserAlert(false); Log.NodeClose(); } catch (WebException e) { Log.MesError("Словили Вэб-эксепшен =( Видимо отвалился вебдрайвер.\r\n" + e.Message + "\r\n" + e.StackTrace + "\r\nStatus Code : " + ((HttpWebResponse)e.Response).StatusCode + "\r\nStatus Description : " + ((HttpWebResponse)e.Response).StatusDescription); Log.NodeClose(); } catch (OpenQA.Selenium.WebDriverException e) { Log.MesError("Словили Вэб-эксепшен =( \r\n" + e.Message + "\r\n" + e.StackTrace); BitrixFramework.Refresh(); Log.NodeClose(); } catch (Exception Ex) { Log.MesError(Ex.Message + "\r\n" + Ex.StackTrace); Log.NodeClose(); } } }
/// <summary> /// Метод для очистки тестовых данных /// </summary> /// <param name="edition">Редакция</param> /// <param name="DBType">Тип базы</param> public static void Clear(string edition, string DBType) { Log.Gap(); Log.MesNormal("Старт очистки тестовых данных"); // идем в админку на стр пользователи Case_Main.OpenAdmin(); //Закрываем модальное окно Битрикс24 - Единая авторизация if (TO_Main.CheckBox_NetworkDontshow().Displayed()) { TO_Main.CheckBox_NetworkDontshow().ClickAndWait(); TO_AdminPanel.Button_Close().ClickAndWait(); } Case_Main.AdminLeftMenu("Настройки"); Case_Main.AdminLeftSubMenu("Пользователи", "Список пользователей"); if (TO_Users.Region_Admin_UsersList().AssertTextMatching(TestUsers.Petr.Email)) { Log.MesNormal("Найден тестовый пользователь Петров с прошлого теста. Удаляем"); // удаляем Петрова TO_Users.Checkbox_Admin_User(edition, DBType, TestUsers.Petr.Name, TestUsers.Petr.LastName).Click(); TO_Users.Button_Admin_Delete().Click(false); BitrixFramework.BrowserAlert(true); TO_General.Region_Wait().WaitWhileElementExists(); // проверяем что удален BitrixFramework.Refresh(); TO_Users.Link_Admin_UserEmail(TestUsers.Petr.Email).NOTExists("Пользователь " + TestUsers.Petr.Email + " успешно удален", "Пользователь " + TestUsers.Petr.Email + " не удален"); } else { Log.MesPass("Тестовый пользователь Петров уже удален."); } if (TO_Users.Region_Admin_UsersList().AssertTextMatching(TestUsers.S***n.Email)) { Log.MesNormal("Найден тестовый пользователь Синичкин с прошлого теста. Удаляем"); // удаляем Синичкина TO_Users.Checkbox_Admin_User(edition, DBType, TestUsers.S***n.Name, TestUsers.S***n.LastName).Click(); TO_Users.Button_Admin_Delete().Click(false); BitrixFramework.BrowserAlert(true); TO_General.Region_Wait().WaitWhileElementExists(); // проверяем что удален BitrixFramework.Refresh(); TO_Users.Link_Admin_UserEmail(TestUsers.S***n.Email).NOTExists("Пользователь " + TestUsers.S***n.Email + " успешно удален", "Пользователь " + TestUsers.S***n.Email + " не удален"); } else { Log.MesPass("Тестовый пользователь Синичкин уже удален."); } TO_AdminPanel.Tab_AdminViewTab().Click(); Case_Main.OpenPublic(); Case_General_Login.Logout(); Log.MesPass("Очистка тестовых демо-пользователей завершена"); }
/// <summary> /// Кейс выполнения php команды в админ. части /// </summary> /// <param name="PhpCommand">текст команды</param> public static void RunPHPCommand(string PhpCommand) { //идем на страницу выполнения php команды BitrixFramework.OpenURL(BitrixFramework.Host() + "/bitrix/admin/php_command_line.php"); //отключаем подсветку синтаксиса GM.BacklightCodeSwitcher(false); //вставляем команду, выполняем TO_General.Textbox_PhpCommand.PasteText(PhpCommand, false, HideMessage: true); BitrixFramework.Wait(3); TO_General.Button_ExecutePhpCommand.ClickAndWait(checkErrors: false); BitrixFramework.BrowserAlert(true); BitrixFramework.Wait(3); }