Hi Sarah
Its really appreciated that you are struggling but the code which you share above is working with coordinates but the which i posted is working with text coordinates will change with the screen dimmision but the UIselector code which i share with you working with text so any type of application like native hybrid webapp can be handled with this code
Your code is pasted below in this i cannot understand what you required
public static void scrollTo(String direction, int times) throws InterruptedException {
Thread.sleep(1000);
if (direction.equals(“down”)) {
Dimension dim = driver.manage().window().getSize();
int width = dim.getWidth() / 2;
for (int i = 0; i < times; i++) {
int startY = (int) (dim.getHeight() * 0.7);
int endY = (int) (dim.getHeight() * 0.5);
new TouchAction(driver).press(point(width, startY)).waitAction(waitOptions(Duration.ofSeconds(1)))
.moveTo(point(width, endY)).release().perform();
so please use my code
which is easy i already comment on each line which you have mentioned as error
Everytime i execute your code, its giving me some errors so I have to change it to for the errors to be resolved
public static void scrollTo(String direction, int times) throws InterruptedException {
Thread.sleep(1000);
Object down = null;
if (direction.equals(down)) {
org.openqa.selenium.Dimension dim = driver.manage().window().getSize();
int width = dim.getWidth() / 2;
for (int i = 0; i < times; i++) {
int startY = (int) (dim.getHeight() * 0.7);
int endY = (int) (dim.getHeight() * 0.5);
new TouchAction(driver).press(point(width, startY)).waitAction(waitOptions(Duration.ofSeconds(1)))
.moveTo(point(width, endY)).release().perform();{
}
}
}
}
private static WaitOptions waitOptions(Duration ofSeconds) {
// TODO Auto-generated method stub
return null;
}
private static PointOption point(int width, int startY) {
// TODO Auto-generated method stub
return null;
}
and im calling it by scrollTo(“down”, 1);
But its still not working. Can you please help me with this?
I know there has been many responses, here is what I use,
public boolean scrollToElement (By by) throws Exception {
boolean isFoundTheElement = appiumServer.getDriver().findElements(by).size() > 0;
while (isFoundTheElement == false) {
swipeVertical(0.8, 0.1, 0.5, 2000);
isFoundTheElement = appiumServer.getDriver().findElements(by).size() > 0;
}
return isFoundTheElement;
}
public void swipeVertical (
double startPercentage, double finalPercentage, double anchorPercentage, int duration)
throws Exception {
Dimension size = appiumServer.getDriver().manage().window().getSize();
int anchor = (int) (size.width * anchorPercentage);
int startPoint = (int) (size.height * startPercentage);
int endPoint = (int) (size.height * finalPercentage);
getTouchAction().press(PointOption.point(anchor, startPoint))
.waitAction(WaitOptions.waitOptions(Duration.ofMillis(duration)))
.moveTo(PointOption.point(anchor, endPoint)).release().perform();
}
public TouchAction getTouchAction () {
return new TouchAction(appiumServer.getDriver());
}
I was continously getting an error on "getDrive. So, i have changed the code a bit. But can you tell me how to call it in the main method?
public static boolean scrollToElement (By by) throws Exception {
boolean isFoundTheElement = driver.findElements(by).size() > 0;
while (isFoundTheElement == false) {
swipeVertical(0.8, 0.1, 0.5, 2000);
isFoundTheElement = driver.findElements(by).size() > 0;
}
return isFoundTheElement;
}
public static void swipeVertical (
double startPercentage, double finalPercentage, double anchorPercentage, int duration)
throws Exception {
org.openqa.selenium.Dimension size = driver.manage().window().getSize();
int anchor = (int) (size.width * anchorPercentage);
int startPoint = (int) (size.height * startPercentage);
int endPoint = (int) (size.height * finalPercentage);
getTouchAction().press(PointOption.point(anchor, startPoint))
.waitAction(WaitOptions.waitOptions(Duration.ofMillis(duration)))
.moveTo(PointOption.point(anchor, endPoint)).release().perform();
}
public static TouchAction getTouchAction () {
return new TouchAction(driver);
}
by is a variable, of type By
https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/By.html1
This is your locator object.
I have already imported import org.openqa.selenium.By; but still its giving me error