summaryrefslogtreecommitdiff
path: root/src/main/java/com/mavlushechka/a1qa/elements
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/mavlushechka/a1qa/elements')
-rw-r--r--src/main/java/com/mavlushechka/a1qa/elements/BaseElement.java71
-rw-r--r--src/main/java/com/mavlushechka/a1qa/elements/Button.java11
-rw-r--r--src/main/java/com/mavlushechka/a1qa/elements/Field.java29
-rw-r--r--src/main/java/com/mavlushechka/a1qa/elements/Label.java11
-rw-r--r--src/main/java/com/mavlushechka/a1qa/elements/Slider.java29
5 files changed, 151 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..edcf1e7
--- /dev/null
+++ b/src/main/java/com/mavlushechka/a1qa/elements/BaseElement.java
@@ -0,0 +1,71 @@
+package com.mavlushechka.a1qa.elements;
+
+import com.mavlushechka.a1qa.driverUtils.WebDriverUtils;
+import com.mavlushechka.a1qa.utils.LoggerUtils;
+import org.openqa.selenium.By;
+import org.openqa.selenium.Dimension;
+import org.openqa.selenium.WebElement;
+
+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();
+
+ 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() {
+ WebElement webElement = find();
+
+ LoggerUtils.info("Getting visibility of the \"" + name + "\" element.");
+ return webElement.isDisplayed();
+ }
+
+ 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() {
+ LoggerUtils.info("Finding the \"" + name + "\" element.");
+ return WebDriverUtils.findElement(locator);
+ }
+
+}
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..bf573db
--- /dev/null
+++ b/src/main/java/com/mavlushechka/a1qa/elements/Field.java
@@ -0,0 +1,29 @@
+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 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"));
+ }
+
+}