diff --git a/.idea/.gitignore b/.idea/.gitignore
deleted file mode 100644
index a0ccf77..0000000
--- a/.idea/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
-# Environment-dependent path to Maven home directory
-/mavenHomeManager.xml
diff --git a/pom.xml b/pom.xml
index 8c1acbd..9adfd42 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,5 +6,25 @@
1.0-SNAPSHOT
Archetype - sel1
https://git.goodtester.ru
+
+
+
+
+
+ org.seleniumhq.selenium
+ selenium-java
+ 4.33.0
+
+
+
+
+ junit
+ junit
+ 4.13.1
+ test
+
+
+
+
diff --git a/src/test/java/ru/ibs/tests/TestTrainingAppline.java b/src/test/java/ru/ibs/tests/TestTrainingAppline.java
new file mode 100644
index 0000000..903d21b
--- /dev/null
+++ b/src/test/java/ru/ibs/tests/TestTrainingAppline.java
@@ -0,0 +1,89 @@
+package ru.ibs.tests;
+
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.openqa.selenium.*;
+import org.openqa.selenium.chrome.ChromeDriver;
+import org.openqa.selenium.support.ui.ExpectedConditions;
+import org.openqa.selenium.support.ui.WebDriverWait;
+
+import java.time.Duration;
+
+public class TestTrainingAppline {
+
+ private WebDriver driver;
+ private WebDriverWait wait;
+ Duration default_timeout = Duration.ofSeconds(10);
+ Duration default_sleep = Duration.ofMillis(500);
+ String fieldXPath = "//input[@id='%s']";
+
+ @Before
+ public void before() {
+ // win
+ System.setProperty("webdriver.chrome.driver", "src/test/resources/chromedriver.exe");
+
+ driver = new ChromeDriver();
+ driver.manage().window().maximize();
+ driver.manage().timeouts().pageLoadTimeout(Duration.ofSeconds(30));
+ driver.manage().timeouts().scriptTimeout(Duration.ofSeconds(30));
+
+ wait = new WebDriverWait(driver, default_timeout, default_sleep);
+
+ String baseUrl = "http://training.appline.ru/user/login";
+ driver.get(baseUrl);
+ }
+
+ @Test
+ public void applineLoginScenario() throws InterruptedException {
+
+ WebElement usernameField = driver.findElement(By.xpath(String.format(fieldXPath, "prependedInput")));
+ fillInputField(usernameField, "Irina Filippova");
+
+ WebElement passwordField = driver.findElement(By.xpath(String.format(fieldXPath, "prependedInput2")));
+ fillInputField(passwordField, "testing");
+
+ // Нажать на кнопку Войти
+ String buttonLocator = "//button[@type='submit']";
+ WebElement loginButton = driver.findElement(By.xpath(buttonLocator));
+ scrollToElementJs(loginButton);
+ waitUtilElementToBeClickable(loginButton);
+ loginButton.click();
+
+ Thread.sleep(5000);
+ }
+
+ @After
+ public void after() {
+ driver.quit();
+ }
+
+ private void scrollToElementJs(WebElement element) {
+ JavascriptExecutor javascriptExecutor = (JavascriptExecutor) driver;
+ javascriptExecutor.executeScript("arguments[0].scrollIntoView(true);", element);
+ }
+
+ private void waitUtilElementToBeClickable(WebElement element) {
+ wait.until(ExpectedConditions.elementToBeClickable(element));
+ }
+
+ private void waitUtilElementToBeVisible(By locator) {
+ wait.until(ExpectedConditions.visibilityOfElementLocated(locator));
+ }
+
+ private void waitUtilElementToBeVisible(WebElement element) {
+ wait.until(ExpectedConditions.visibilityOf(element));
+ }
+
+ private void fillInputField(WebElement element, String value) {
+ scrollToElementJs(element);
+ waitUtilElementToBeClickable(element);
+ element.click();
+ element.clear();
+ element.sendKeys(value);
+ boolean checkFlag = wait.until(ExpectedConditions.attributeContains(element, "value", value));
+ Assert.assertTrue("Поле было заполнено некорректно", checkFlag);
+ }
+
+}