当前位置: 首页 > 知识库问答 >
问题:

如何使用appium水平滑动

贝镜
2023-03-14

我有5刷屏幕和我的代码只是停留在第三个屏幕我想水平滚动。

共有2个答案

武博艺
2023-03-14

使用以下方法水平滑动:

public static void swipeHorizontal(AppiumDriver driver, double startPercentage, double finalPercentage, double anchorPercentage, int duration) throws Exception {
            Dimension size = driver.manage().window().getSize();
            int anchor = (int) (size.height * anchorPercentage);
            int startPoint = (int) (size.width * startPercentage);
            int endPoint = (int) (size.width * finalPercentage);
            new TouchAction(driver).press(startPoint, anchor).waitAction(Duration.ofMillis(duration)).moveTo(endPoint, anchor).release().perform();
        }

通过以下方式调用上述方法:

swipeHorizontal((AppiumDriver) driver,0.9,0.01,0.5,2000);
景星华
2023-03-14

以下是对我来说很好的代码:

enum DIRECTION{UP, DOWN, LEFT, RIGHT};

以及:

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);
            break;

        case LEFT:
            startY = (int) (size.height /2);
            startX = (int) (size.width * 0.05);
            endX = (int) (size.width * 0.90);
            break;

        case UP:
            endY= (int) (size.height * 0.70);
            startY  = (int) (size.height * 0.30);
            startX = (size.width / 2);
            break;


        case DOWN:
            startY = (int) (size.height * 0.70);
            endY = (int) (size.height * 0.30);
            startX = (size.width / 2);

            break;

    }

    new TouchAction(driver)
            .press(startX, startY)
            .waitAction(Duration.ofMillis(duration))
            .moveTo(endX, startY)
            .release()
            .perform();

}

希望对你有帮助。。。

 类似资料:
  • 在iOS real device automation项目中,我使用下面的代码垂直滑动,但在执行过程中,它实际上执行水平滑动。 如果我做错了什么,有人能告诉我吗? Xcode版本:8.3.2 iOS版本:10.2应用程序版本:1.7.2

  • 问题内容: 我想制作selenium脚本,该脚本移动以下站点上给出的滑块 示例名称是如何更改jQuery UI Slider的方向 http://jqueryui.com/demos/slider/ 我不知道该怎么做 问题答案: 产生行动链 Actions链生成器实现了Builder模式,以创建包含一组其他操作的CompositeAction。这应该通过配置一个Actions链生成器实例并调用它的

  • 问题内容: 我有一个,当行太多时,会出现滚动条,但是当行太长时,该行会分成两行,而不是出现水平滚动条,如何使水平条出现而不是分成两行,我的添加如下: 问题答案: 正如我们自己的Rob Camick 在这里介绍的那样,您可以尝试使用类似… 这将停止行/自动换行

  • 问题内容: 进行UIImage翻转的解决方案是使用Objective-C代码: 但是,imageWithCGImage在Swift中不可用!是否有使用Swift水平翻转图像的解决方案?谢谢! 问题答案: 大多数工厂方法会迅速转换为初始化程序。只要有可用,即使class方法仍然可用,它们也是首选。您可以使用: 用法如下所示:

  • 我需要在我的Android应用程序中实现一个水平的listview。我做了一些研究,发现如何在Android中创建一个水平的ListView?和Android中的水平ListView?。但是,这些问题是在RecycerView发布之前提出的。现在有没有更好的方法用RecycerView实现这一点?

  • 这里的初学者。出于某种原因,在我编码的网站上,未来的按钮在导航栏上没有水平对齐。我正在使用flexbox,但即使如此,它也没有像我希望的那样对齐它们。代码中似乎也没有任何问题。 右侧按钮似乎比左侧按钮低约5px。在这里我完全不知所措,我的代码中似乎没有任何错误导致这种情况。应该修复它的Flexbox标记也不会做任何事情,例如