此代码不会在真实设备中向下滑动但在模拟器中工作(使用 Appium)

This code Doesn't swipe down in Real device But work in emulator (Use Appium)

我正在使用 Appium For Automation 此代码用于向下滑动,但是当我在真实设备上使用它时它不起作用。如何为真实设备解决此问题。

    Dimension dimension = driver.manage().window().getSize();
    int start_x = (int) (dimension.width * 0.5);
    int start_y = (int) (dimension.height * 0.8);

    int end_x = (int) (dimension.width * 0.5);
    int end_y = (int) (dimension.height * 0.2);
    
    new TouchAction(driver).press(PointOption.point(start_x, start_y))
    .waitAction(WaitOptions.waitOptions(Duration.ofSeconds(2)))
    .moveTo(PointOption.point(end_x, end_y)).release().perform();

如果你想要一个可靠的解决方案,你需要避免使用基于屏幕尺寸的滑动,即使你知道尺寸也不是 100% 准确。

使用 AndroidUIAutomator 定位器,您可以在搜索元素旁边自动滚动视图 up/down,例如你只知道文本“Here it is”:

MobileElement element = driver.findElement(MobileBy.AndroidUIAutomator("new UiScrollable(UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\"Here it is\"))";

我个人强烈建议不要使用文本,但请检查 Android docs. Appium docs also has examples 中的 resourceIdclassName