我有一个应用程序页面,我需要垂直滚动,以达到应用程序的底部保存按钮。
我正在尝试下面的代码,但得到服务器端错误。
new TouchAction((PerformsTouchActions) driver).press(point(anchor, startPoint))
.waitAction(waitOptions(Duration.ofMillis(duration))).moveTo(point(anchor, endPoint)).release()
.perform();
有什么好方法可以在android中实现滚动功能吗?
如果应用程序是混合的,并且您处于web环境中,您可以尝试以下方法:
driver.execute_script("arguments[0].scrollIntoView();", element)
你将需要传递任何元素,你知道是在应用程序的顶部,所以可能是应用程序头。
然而,如果应用程序是在本地上下文中,那么TouchAction是一个很好的选择,因为您已经实现了它。
但appium还提供了另一个解决方案,因为触摸操作在iOS中不起作用,那就是使用移动界面,类似于这样:
driver.execute_script("mobile: scroll", {"direction": "up"})
试着用这个,我不知道如何在主方法中调用它,因为有人给了我,所以如果你明白了,请告诉我
public void swipeRight() throws Exception {
//The viewing size of the device
Dimension size = driver.manage().window().getSize();
//Starting x location set to 5% of the width (near left)
int startx = (int) (size.width * 0.05);
//Ending x location set to 95% of the width (near right)
int endx = (int) (size.width * 0.95);
//y position set to mid-screen vertically
int starty = size.height / 2;
scroll(startx, starty, endx, starty);
}
/**
* This method does a swipe downwards
* @author Bill Hileman
* @throws Exception
*/
public void scrollUp() throws Exception {
//The viewing size of the device
Dimension size = driver.manage().window().getSize();
//Starting y location set to 20% of the height (near bottom)
int starty = (int) (size.height * 0.20);
//Ending y location set to 80% of the height (near top)
int endy = (int) (size.height * 0.80);
//x position set to mid-screen horizontally
int startx = size.width / 2;
scroll(startx, starty, startx, endy);
}
下面是一个如何在Android中实现滚动的示例:
public static void swipe(MobileDriver driver, DIRECTION direction, long duration) {
Dimension size = driver.manage().window().getSize();
int startX = 0;
int endX = 0;
int startY = 0;
int endY = 0;
switch (direction) {
case RIGHT:
startY = (int) (size.height / 2);
startX = (int) (size.width * 0.90);
endX = (int) (size.width * 0.05);
new TouchAction(driver)
.press(startX, startY)
.waitAction(Duration.ofMillis(duration))
.moveTo(endX, startY)
.release()
.perform();
break;
case LEFT:
startY = (int) (size.height / 2);
startX = (int) (size.width * 0.05);
endX = (int) (size.width * 0.90);
new TouchAction(driver)
.press(startX, startY)
.waitAction(Duration.ofMillis(duration))
.moveTo(endX, startY)
.release()
.perform();
break;
case UP:
endY = (int) (size.height * 0.70);
startY = (int) (size.height * 0.30);
startX = (size.width / 2);
new TouchAction(driver)
.press(startX, startY)
.waitAction(Duration.ofMillis(duration))
.moveTo(startX, endY)
.release()
.perform();
break;
case DOWN:
startY = (int) (size.height * 0.70);
endY = (int) (size.height * 0.30);
startX = (size.width / 2);
new TouchAction(driver)
.press(startX, startY)
.waitAction(Duration.ofMillis(duration))
.moveTo(startX, endY)
.release()
.perform();
break;
}
}
和枚举,设置方向:
public enum DIRECTION {
DOWN, UP, LEFT, RIGHT;
}
最后用法:
swipe(driver, DIRECTION.UP, 3);
希望这能有所帮助,
问题内容: 我正在学习如何使用TableViews,并且想知道如何查看tableView是向上滚动还是向下滚动?我一直在尝试诸如此类的各种操作,但由于下面是针对滚动视图的操作,并且没有TableView,因此它没有用。任何建议都会很棒,因为我是新来的… 这就是我的tableView代码中的内容 问题答案: 就像@maddy在您的问题评论中说的那样,您可以使用和来检查是否正在滚动,此外,您可以同时使
问题内容: 嗨,大家好,我是Selenium和Python的新手。我只是在抓取站点pagalguy网站。我知道如何向下滚动到页面底部,但是我需要逐步向下滚动,以便Selenium单击所有readmore按钮,但是我不知道如何逐步向下滚动,因此我像下面的一个一样硬编码 我尝试使用while循环将其自动化,但它导致错误,上面的一个可行,但是我希望它简短并循环,以便可以将其用于具有不同页面长度的所有其他
本文向大家介绍vim 向上滚动,包括了vim 向上滚动的使用技巧和注意事项,需要的朋友参考一下 示例 命令 描述 Ctrl+Y 向上滚动一行。 Ctrl+U 向上滚动半个屏幕(可使用该scroll选项配置)。 Ctrl+B 向上滚动全屏。 z^ 在窗口底部的窗口上方绘制第一行。
问题内容: 有人可以帮助我使用 Java* 使用 WebDriver 自动 向下滚动功能 吗? *** 就我而言,当我垂直向下滚动鼠标时,对于yahoo邮件就会显示( 可见 )。 问题答案: 您可以使用以下代码垂直向下滚动: 同样,也可以通过将y坐标更改为负值来向上滚动: 您还可以使用以下代码: 对于向下滚动: 向上滚动:
问题内容: 尝试向下滚动到页面底部 https://silpo.ua/offers/?categoryId=13, 但没有结果(没有动静) 我的代码: 问题答案: 有几种方法可以向下滚动到页面底部。根据URL , 版权 信息位于页面底部。因此,您可以使用方法在视口中滚动 版权 消息,如下所示:
问题内容: 当我们向下滚动页面时以及当第二个div遇到顶部边界时,我想粘贴第二个div。修复后,它应与其他页面一起滚动。我该如何实现? 和HTML 在此示例中,滚动页面时应固定第二个div。当我们向上滚动时,应该变成先前的状态。请帮我。 问题答案: 你可以用 注意: 不要忘记在页面中包含jquery库链接(假设您是初学者)