Appium 滚动操作发生两次



我使用以下代码在iOS设备上滚动屏幕,但它滚动了两次。我在屏幕中有多个同名的元素,但我想滚动到第一个元素。

JavascriptExecutor js = (JavascriptExecutor) driver;
HashMap<String, String> scrollObject = new HashMap<String, String>();
scrollObject.put("direction", "down");
scrollObject.put("xpath", "//XCUIElementTypeStaticText[@name='Max threshold (L/s)']");
js.executeScript("mobile: scroll", scrollObject);

将序列号添加到您的xpath

scrollObject.put("xpath", "(//XCUIElementTypeStaticText[@name='Max threshold (L/s)'])[1]");

下面的代码帮助了我,

public void verticalSwipeOnce(double scrollPercentageStart, double scrollPecentageEnd) {
Dimension dim = driver.manage().window().getSize();
int height = dim.getHeight(); int starty = (int) (height * scrollPercentageStart);
int endy = (int) (height * scrollPecentageEnd);
new TouchAction((PerformsTouchActions) (driver)).press(PointOption.point(0, starty)) .waitAction(WaitOptions.waitOptions(Duration.ofMillis(1000))).moveTo(PointOption.point(0, endy)) .release().perform();
}

您可以添加:

params.put("duration","1");

这应该确保它将滚动一次

最新更新