From 5558ed4c4097dac7c445ca9f20aea9b719ed8995 Mon Sep 17 00:00:00 2001 From: Teodora Jovcheska Date: Fri, 19 Apr 2024 12:53:50 +0200 Subject: [PATCH 1/2] Added scrollUp and scrollDown methods --- README.md | 10 ++- src/main/java/testUI/elements/Element.java | 68 ++++++++++++++++++++ src/main/java/testUI/elements/UIElement.java | 4 ++ 3 files changed, 81 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 71a2816..812c658 100644 --- a/README.md +++ b/README.md @@ -298,7 +298,15 @@ element.getAttribute("attribute")
-element.scrollIntoView()
+element.scrollTo()
+
+ +
+element.scrollUp()
+
+ +
+element.scrollDown()
 
diff --git a/src/main/java/testUI/elements/Element.java b/src/main/java/testUI/elements/Element.java
index 7af6aaf..93ba4e6 100644
--- a/src/main/java/testUI/elements/Element.java
+++ b/src/main/java/testUI/elements/Element.java
@@ -583,6 +583,74 @@ public UIElement swipe(int XCoordinate, int YCoordinate) {
         return getElementObject();
     }
 
+    public UIElement scrollUp() {
+        try {
+            if (!Configuration.automationType.equals(Configuration.DESKTOP_PLATFORM)) {
+                WebElement slider = getElement(
+                        accesibilityIdiOS,
+                        accesibilityId,
+                        iOSElement,
+                        element,
+                        index,
+                        collection);
+                Dimension size = getDriver().manage().window().getSize();
+                int endY = (int) (size.height * 0.2);
+                Point source = slider.getLocation();
+                PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");
+                Sequence sequence = new Sequence(finger, 1);
+                sequence.addAction(finger.createPointerMove(Duration.ofMillis(0),
+                        PointerInput.Origin.viewport(), source.x, source.y));
+                sequence.addAction(finger.createPointerDown(PointerInput.MouseButton.MIDDLE.asArg()));
+                sequence.addAction(new Pause(finger, Duration.ofMillis(600)));
+                sequence.addAction(finger.createPointerMove(Duration.ofMillis(600),
+                        PointerInput.Origin.viewport(), source.x, source.y - endY));
+                sequence.addAction(finger.createPointerUp(PointerInput.MouseButton.MIDDLE.asArg()));
+
+                getDriver().perform(singletonList(sequence));
+            } else {
+                getSelenide(SelenideElement, index, collection).scrollIntoView(true);
+            }
+        } catch (Throwable e) {
+            takeScreenshotsAllure();
+            TestUIException.handleError(e.getMessage());
+        }
+        return getElementObject();
+    }
+
+    public UIElement scrollDown() {
+        try {
+            if (!Configuration.automationType.equals(Configuration.DESKTOP_PLATFORM)) {
+                WebElement slider = getElement(
+                        accesibilityIdiOS,
+                        accesibilityId,
+                        iOSElement,
+                        element,
+                        index,
+                        collection);
+                Dimension size = getDriver().manage().window().getSize();
+                int endY = (int) (size.height * 0.8);
+                Point source = slider.getLocation();
+                PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");
+                Sequence sequence = new Sequence(finger, 1);
+                sequence.addAction(finger.createPointerMove(Duration.ofMillis(0),
+                        PointerInput.Origin.viewport(), source.x, source.y));
+                sequence.addAction(finger.createPointerDown(PointerInput.MouseButton.MIDDLE.asArg()));
+                sequence.addAction(new Pause(finger, Duration.ofMillis(600)));
+                sequence.addAction(finger.createPointerMove(Duration.ofMillis(600),
+                        PointerInput.Origin.viewport(), source.x, source.y + endY));
+                sequence.addAction(finger.createPointerUp(PointerInput.MouseButton.MIDDLE.asArg()));
+
+                getDriver().perform(singletonList(sequence));
+            } else {
+                getSelenide(SelenideElement, index, collection).scrollIntoView(true);
+            }
+        } catch (Throwable e) {
+            takeScreenshotsAllure();
+            TestUIException.handleError(e.getMessage());
+        }
+        return getElementObject();
+    }
+
     public UIElement swipeRight() {
         try {
             if (!Configuration.automationType.equals(Configuration.DESKTOP_PLATFORM)) {
diff --git a/src/main/java/testUI/elements/UIElement.java b/src/main/java/testUI/elements/UIElement.java
index 00f7697..2302786 100644
--- a/src/main/java/testUI/elements/UIElement.java
+++ b/src/main/java/testUI/elements/UIElement.java
@@ -58,6 +58,10 @@ public interface UIElement {
 
     SlideActions scrollTo();
 
+    UIElement scrollUp();
+
+    UIElement scrollDown();
+
     UIElement swipe(int XCoordinate, int YCoordinate);
 
     UIElement swipeRight();

From 8655903ed63aebe06765ffd960bfe1f637cbc5d9 Mon Sep 17 00:00:00 2001
From: Teodora Jovcheska 
Date: Tue, 2 Jul 2024 16:58:06 +0200
Subject: [PATCH 2/2] Updated readme

---
 README.md | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/README.md b/README.md
index 812c658..2e94dcc 100644
--- a/README.md
+++ b/README.md
@@ -305,6 +305,8 @@ element.scrollTo()
 element.scrollUp()
 
+Note: For the web version, both scrollUp() and scrollDown() use the same Selenide method. +
 element.scrollDown()