diff options
Diffstat (limited to 'src/main/java/com/mavlushechka/a1qa/elements')
5 files changed, 173 insertions, 0 deletions
diff --git a/src/main/java/com/mavlushechka/a1qa/elements/BaseElement.java b/src/main/java/com/mavlushechka/a1qa/elements/BaseElement.java new file mode 100644 index 0000000..a2dc55a --- /dev/null +++ b/src/main/java/com/mavlushechka/a1qa/elements/BaseElement.java @@ -0,0 +1,86 @@ +package com.mavlushechka.a1qa.elements; + +import com.mavlushechka.a1qa.driverUtils.ActionUtils; +import com.mavlushechka.a1qa.driverUtils.WebDriverUtils; +import com.mavlushechka.a1qa.driverUtils.WebDriverWaitFactory; +import com.mavlushechka.a1qa.utils.LoggerUtils; +import org.openqa.selenium.By; +import org.openqa.selenium.Dimension; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.ui.ExpectedConditions; + +public abstract class BaseElement { + + private final By locator; + private final String name; + + + public BaseElement(By locator, String name) { + this.locator = locator; + this.name = name; + } + + public void click() { + WebElement webElement = find(); + + scrollTo(); + LoggerUtils.info("Clicking on the \"" + name + "\" element."); + webElement.click(); + } + + public String getText() { + WebElement webElement = find(); + + LoggerUtils.info("Getting text of the \"" + name + "\" element."); + return webElement.getText(); + } + + public boolean isEnabled() { + WebElement webElement = find(); + + LoggerUtils.info("Getting state of the \"" + name + "\" element."); + return webElement.isEnabled(); + } + + public boolean isVisible() { + LoggerUtils.info("Getting visibility of the \"" + name + "\" element."); + return WebDriverWaitFactory.createWebDriverWait().until(ExpectedConditions.visibilityOfElementLocated(locator)).isDisplayed(); + } + + public boolean isInvisible() { + LoggerUtils.info("Getting invisibility of the \"" + name + "\" element."); + return WebDriverWaitFactory.createWebDriverWait().until(ExpectedConditions.invisibilityOfElementLocated(locator)); + } + + public String getName() { + return name; + } + + public Dimension getDimension() { + WebElement webElement = find(); + + LoggerUtils.info("Getting dimension of the \"" + name + "\" element."); + return webElement.getSize(); + } + + public String getAttributeValue(String attribute) { + WebElement webElement = find(); + + LoggerUtils.info("Getting \"" + attribute + "\" attribute of the \"" + name + "\" element."); + return webElement.getAttribute(attribute); + } + + protected WebElement find() { + isVisible(); + LoggerUtils.info("Finding the \"" + name + "\" element."); + return WebDriverUtils.findElement(locator); + } + + protected void scrollTo() { + WebElement webElement = find(); + + LoggerUtils.info("Scrolling to the \"" + name + "\" element."); + ActionUtils.scrollTo(webElement); + } + +} diff --git a/src/main/java/com/mavlushechka/a1qa/elements/Button.java b/src/main/java/com/mavlushechka/a1qa/elements/Button.java new file mode 100644 index 0000000..d68b5f6 --- /dev/null +++ b/src/main/java/com/mavlushechka/a1qa/elements/Button.java @@ -0,0 +1,11 @@ +package com.mavlushechka.a1qa.elements; + +import org.openqa.selenium.By; + +public class Button extends BaseElement { + + public Button(By locator, String name) { + super(locator, name); + } + +} diff --git a/src/main/java/com/mavlushechka/a1qa/elements/Field.java b/src/main/java/com/mavlushechka/a1qa/elements/Field.java new file mode 100644 index 0000000..99cd41d --- /dev/null +++ b/src/main/java/com/mavlushechka/a1qa/elements/Field.java @@ -0,0 +1,36 @@ +package com.mavlushechka.a1qa.elements; + +import com.mavlushechka.a1qa.utils.LoggerUtils; +import com.mavlushechka.a1qa.utils.StringUtils; +import org.openqa.selenium.By; +import org.openqa.selenium.WebElement; + +public class Field extends BaseElement { + + public Field(By locator, String name) { + super(locator, name); + } + + public void sendKeys(String keys) { + sendKeys(keys, false); + } + + public void sendKeys(String keys, boolean isSecret) { + WebElement field = find(); + + LoggerUtils.info("Entering \"" + (isSecret ? StringUtils.replaceByStars(keys) : keys) + "\" keys to the \"" + getName() + "\" field."); + field.sendKeys(keys); + } + + public void clear() { + WebElement field = find(); + + LoggerUtils.info("Clearing the \"" + getName() + "\" field."); + field.clear(); + } + + public String getValue() { + return find().getAttribute("value"); + } + +} diff --git a/src/main/java/com/mavlushechka/a1qa/elements/Label.java b/src/main/java/com/mavlushechka/a1qa/elements/Label.java new file mode 100644 index 0000000..a822f63 --- /dev/null +++ b/src/main/java/com/mavlushechka/a1qa/elements/Label.java @@ -0,0 +1,11 @@ +package com.mavlushechka.a1qa.elements; + +import org.openqa.selenium.By; + +public class Label extends BaseElement { + + public Label(By locator, String name) { + super(locator, name); + } + +} diff --git a/src/main/java/com/mavlushechka/a1qa/elements/Slider.java b/src/main/java/com/mavlushechka/a1qa/elements/Slider.java new file mode 100644 index 0000000..45c1e69 --- /dev/null +++ b/src/main/java/com/mavlushechka/a1qa/elements/Slider.java @@ -0,0 +1,29 @@ +package com.mavlushechka.a1qa.elements; + +import com.mavlushechka.a1qa.driverUtils.ActionUtils; +import com.mavlushechka.a1qa.utils.DoubleUtils; +import com.mavlushechka.a1qa.utils.LoggerUtils; +import org.openqa.selenium.By; +import org.openqa.selenium.Point; +import org.openqa.selenium.WebElement; + +public class Slider extends BaseElement { + + public Slider(By locator, String name) { + super(locator, name); + } + + public void slideTo(int percentage) { + WebElement slider = find(); + Point currentPoint = new Point((int) Math.round(DoubleUtils.getPercentageOf(slider.getSize().getWidth(), getValue())-getDimension().width/2.0), 0); + Point expectedPoint = new Point((int) Math.round(DoubleUtils.getPercentageOf(slider.getSize().getWidth(), percentage)-getDimension().width/2.0), 0); + + LoggerUtils.info("Sliding on the \"" + getName() + "\" element."); + ActionUtils.dragAndDrop(slider, currentPoint, expectedPoint); + } + + public int getValue() { + return Integer.parseInt(find().getAttribute("value")); + } + +} |