diff --git a/src/main/java/ru/alfabank/steps/DefaultManageBrowserSteps.java b/src/main/java/ru/alfabank/steps/DefaultManageBrowserSteps.java index 11fc6378..ea34aafd 100644 --- a/src/main/java/ru/alfabank/steps/DefaultManageBrowserSteps.java +++ b/src/main/java/ru/alfabank/steps/DefaultManageBrowserSteps.java @@ -23,6 +23,7 @@ import java.util.Set; +import static com.codeborne.selenide.Selenide.clearBrowserCookies; import static com.codeborne.selenide.WebDriverRunner.getWebDriver; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.text.IsEqualIgnoringCase.equalToIgnoringCase; @@ -41,7 +42,7 @@ public class DefaultManageBrowserSteps { */ @Когда("^cookies приложения очищены$") public void deleteCookies(){ - getWebDriver().manage().deleteAllCookies(); + clearBrowserCookies(); } /** diff --git a/src/main/java/ru/alfabank/steps/DefaultSteps.java b/src/main/java/ru/alfabank/steps/DefaultSteps.java index fc803df8..4eac5063 100644 --- a/src/main/java/ru/alfabank/steps/DefaultSteps.java +++ b/src/main/java/ru/alfabank/steps/DefaultSteps.java @@ -98,7 +98,7 @@ public void refreshPage() { @Когда("^совершен переход по ссылке \"([^\"]*)\"$") public void goToUrl(String address) { String url = resolveVars(getPropertyOrStringVariableOrValue(address)); - getWebDriver().get(url); + open(url); akitaScenario.write("Url = " + url); } @@ -228,12 +228,27 @@ public void checkIfListContainsValueFromField(String variableListName, String el * Выполняется переход по заданной ссылке. * Шаг содержит проверку, что после перехода загружена заданная страница. * Ссылка может передаваться как строка, так и как ключ из application.properties + * Deprecated */ - @И("^совершен переход на страницу \"([^\"]*)\" по (?:ссылке|ссылке из property файла) \"([^\"]*)\"$") + @Deprecated + @И("^совершен переход на страницу \"([^\"]*)\" по ссылке из property файла \"([^\"]*)\"$") public void goToSelectedPageByLinkFromPropertyFile(String pageName, String urlOrName) { String address = loadProperty(urlOrName, resolveVars(urlOrName)); akitaScenario.write(" url = " + address); - WebDriverRunner.getWebDriver().get(address); + open(address); + loadPage(pageName); + } + + /** + * Выполняется переход по заданной ссылке. + * Шаг содержит проверку, что после перехода загружена заданная страница. + * Ссылка может передаваться как строка, так и как ключ из application.properties + */ + @И("^совершен переход на страницу \"([^\"]*)\" по ссылке \"([^\"]*)\"$") + public void goToSelectedPageByLink(String pageName, String urlOrName) { + String address = loadProperty(urlOrName, resolveVars(urlOrName)); + akitaScenario.write(" url = " + address); + open(address); loadPage(pageName); } @@ -259,7 +274,7 @@ public void blockDisappeared(String nameOfPage) { @И("^выполнено нажатие на клавиатуре \"([^\"]*)\"$") public void pushButtonOnKeyboard(String buttonName) { Keys key = Keys.valueOf(buttonName.toUpperCase()); - WebDriverRunner.getWebDriver().switchTo().activeElement().sendKeys(key); + switchTo().activeElement().sendKeys(key); } /** @@ -276,7 +291,7 @@ public void pressKeyCombination(List keyNames) { .map(this::getKeyOrCharacter) .collect(Collectors.toList()); String combination = Keys.chord(listKeys); - WebDriverRunner.getWebDriver().switchTo().activeElement().sendKeys(combination); + switchTo().activeElement().sendKeys(combination); } private CharSequence getKeyOrCharacter(String key) { @@ -320,7 +335,9 @@ public void fieldInputIsEmpty(String fieldName) { /** * Устанавливает размеры окна браузера + * Deprecated */ + @Deprecated @И("^установить разрешение экрана \"([^\"]*)\" ширина и \"([^\"]*)\" высота$") public void setWindowSize(String widthRaw, String heightRaw) { int width = Integer.valueOf(widthRaw); @@ -329,12 +346,21 @@ public void setWindowSize(String widthRaw, String heightRaw) { akitaScenario.write("Установлены размеры окна браузера: ширина " + widthRaw + " высота" + heightRaw); } + /** + * Устанавливает размеры окна браузера + */ + @И("^установлено разрешение экрана (\\d+) х (\\d+)$") + public void setBrowserWindowSize(int width, int height) { + getWebDriver().manage().window().setSize(new Dimension(width, height)); + akitaScenario.write("Установлены размеры окна браузера: ширина " + width + " высота" + height); + } + /** * Разворачивает окно с браузером на весь экран */ @Если("^окно развернуто на весь экран$") public void expandWindowToFullScreen() { - WebDriverRunner.getWebDriver().manage().window().maximize(); + getWebDriver().manage().window().maximize(); } /** @@ -804,11 +830,11 @@ public String getPropertyOrStringVariableOrValue(String propertyNameOrVariableNa String propertyValue = tryLoadProperty(propertyNameOrVariableNameOrValue); String variableValue = (String) akitaScenario.tryGetVar(propertyNameOrVariableNameOrValue); - boolean propertyCheck = checkResult(propertyValue, "Переменная из property файла"); - boolean variableCheck = checkResult(variableValue, "Переменная сценария"); + boolean propertyCheck = checkResult(propertyValue, "Переменная из property файла"); + boolean variableCheck = checkResult(variableValue, "Переменная сценария"); checkResult(propertyNameOrVariableNameOrValue, "Переменная переданная на вход"); - return propertyCheck ? propertyValue : (variableCheck ? variableValue : propertyNameOrVariableNameOrValue); + return propertyCheck ? propertyValue : (variableCheck ? variableValue : propertyNameOrVariableNameOrValue); } private boolean checkResult(String result, String message) { diff --git a/src/main/java/ru/alfabank/tests/core/helpers/PropertyLoader.java b/src/main/java/ru/alfabank/tests/core/helpers/PropertyLoader.java index 187ebc8d..2a98f2cc 100644 --- a/src/main/java/ru/alfabank/tests/core/helpers/PropertyLoader.java +++ b/src/main/java/ru/alfabank/tests/core/helpers/PropertyLoader.java @@ -133,7 +133,8 @@ public static Integer loadPropertyInt(String propertyName, Integer defaultValue) /** * Вспомогательный метод, возвращает значение свойства по имени. - * Сначала поиск в property-файле, если указано системное свойство "profile" + * Сначала поиск в System переменным, + * затем в property-файле, если указано системное свойство "profile" * Если ничего не найдено, поиск в /application.properties * * @param propertyName название свойства @@ -142,8 +143,10 @@ public static Integer loadPropertyInt(String propertyName, Integer defaultValue) public static String tryLoadProperty(String propertyName) { String value = null; if (!Strings.isNullOrEmpty(propertyName)) { - value = PROFILE_PROPERTIES.getProperty(propertyName); + String systemProperty = loadSystemPropertyOrDefault(propertyName, propertyName); + if(!propertyName.equals(systemProperty)) return systemProperty; + value = PROFILE_PROPERTIES.getProperty(propertyName); if (null == value) { value = PROPERTIES.getProperty(propertyName); } diff --git a/src/test/java/ru/alfabank/steps/DefaultStepsTest.java b/src/test/java/ru/alfabank/steps/DefaultStepsTest.java index fc4ca1e3..85ba1b42 100644 --- a/src/test/java/ru/alfabank/steps/DefaultStepsTest.java +++ b/src/test/java/ru/alfabank/steps/DefaultStepsTest.java @@ -61,7 +61,7 @@ public static void setup() { @Before public void prepare() { - ds.goToSelectedPageByLinkFromPropertyFile("AkitaPageMock", akitaScenario.getVar("Page").toString()); + ds.goToSelectedPageByLink("AkitaPageMock", akitaScenario.getVar("Page").toString()); } @AfterClass @@ -88,7 +88,7 @@ public void checkCurrentURLNegative() { @Test public void setWindowSizeSimple() { Dimension expectedDimension = new Dimension(800, 600); - ds.setWindowSize("800", "600"); + ds.setBrowserWindowSize(800, 600); Dimension actualDimension = WebDriverRunner.getWebDriver().manage().window().getSize(); assertThat(expectedDimension, equalTo(actualDimension)); } @@ -498,8 +498,8 @@ public void testGetPropertyOrStringVariableOrValueFromProperty() { @Test public void testGetPropertyOrStringVariableOrValueFromScopedVariable() { - akitaScenario.setVar("123", "shouldLoadMe"); - assertThat(ds.getPropertyOrStringVariableOrValue("123"), + akitaScenario.setVar("akita.url", "shouldLoadMe"); + assertThat(ds.getPropertyOrStringVariableOrValue("akita.url"), equalTo("shouldLoadMe")); } @@ -509,6 +509,16 @@ public void testGetPropertyOrStringVariableOrValueFromValue() { equalTo("getPropertyOrVariableOrValueTestValue")); } + @Test + public void testGetPropertyOrStringVariableOrValueFromSystemVariable() { + String propertyName = "akita.url"; + String expectedValue = "http://url"; + System.setProperty(propertyName, expectedValue); + String actualValue = ds.getPropertyOrStringVariableOrValue(propertyName); + System.clearProperty(propertyName); + assertThat(actualValue, equalTo(expectedValue)); + } + @Test public void testSetRandomCharSequenceCyrillic() { ds.setRandomCharSequence("NormalField", 4, "кириллице"); diff --git a/src/test/java/ru/alfabank/steps/PageElementTest.java b/src/test/java/ru/alfabank/steps/PageElementTest.java index a280b638..48b62241 100644 --- a/src/test/java/ru/alfabank/steps/PageElementTest.java +++ b/src/test/java/ru/alfabank/steps/PageElementTest.java @@ -49,7 +49,7 @@ public static void setup() { @Before public void prepare() { - ds.goToSelectedPageByLinkFromPropertyFile("AkitaPageMock", akitaScenario.getVar("Page").toString()); + ds.goToSelectedPageByLink("AkitaPageMock", akitaScenario.getVar("Page").toString()); } @AfterClass