iPhone屏幕/ Android屏幕上的X和Y轴格式是什么?

灯:

我一直在研究在iPhone屏幕上设置的X和Y轴,因为我试图使用Appium在应用程序上运行自动化测试。我正在做的部分工作是滑动,但是我遇到了移动点,X和Y点的问题。

我不知道X轴和Y轴的限制在iPhone屏幕或Android屏幕上。因此,我不确定我的光标从哪里滑动到哪里。

到目前为止,我已经可以通过下面的代码进行一次滑动,

TouchAction action1 = new TouchAction((PerformsTouchActions) driver);
        action1.press(PointOption.point(250,200))
                .waitAction(new WaitOptions().withDuration(Duration.ofMillis(250))) //you can change wait durations as per your requirement
                .moveTo(PointOption.point(50, 250))
                .release()
                .perform();

        Thread.sleep(5000);

这会向左成功滑动一次,但第二次滑动会成功运行,但不会向左滑动屏幕。如图所示,它会滑动,但不会将其移动到超过所需阈值的位置才能将其移动到下一页。

众所周知,上述代码位于如下所示for循环中。

 for(int i = 0; i <= 3; i++){
        TouchAction action1 = new TouchAction((PerformsTouchActions) driver);
        action1.press(PointOption.point(250,200))
                .waitAction(new WaitOptions().withDuration(Duration.ofMillis(250))) //you can change wait durations as per your requirement
                .moveTo(PointOption.point(50, 250))
                .release()
                .perform();

        Thread.sleep(5000);

    }

是否有适用于iPhone或Android的文档,其中显示了X轴和Y轴的设置,限制等,等等

编辑:

第一段代码位于for循环之外。我相信那是一段正确滑动屏幕的代码。输入for循环后,屏幕将无法正确滑动。我相信我在for循环中使用的语法不正确。如果有人对如何正确地将滑动功能合并到中有任何建议,那将有很大的帮助。

Muzzamil:

X,Y坐标取决于您用于自动化的设备/仿真器,如果设备具有大的显示X,Y值将很高。

建议不要hardcoded value of X, Y在坐标为的情况下滑动或滚动时使用it can throw exception points are out of device whenever you will be shifted on small screen Device

请看一下如何在滚动到底部时借助设备的高度和宽度获取动态X,Y值

public void scrollToBottom() {

// we are  scrolling to bottom so X will be constant so we are taking mid point in width. 
      int  x = driver.manage().window().getSize().width / 2;

// starting of Y is from 20% of height as we have one bar in all device for showing network and battery status
      int start_y = (int) (driver.manage().window().getSize().height * 0.2);

// end of Y is 80% of height
      int end_y = (int) (driver.manage().window().getSize().height * 0.8);

// here scrolling length is (80% -20%) 60%.
        TouchAction dragNDrop = new TouchAction(driver)
                        .press(PointOption.point(x,start_y)).waitAction(WaitOptions.waitOptions(Duration.ofMillis(500)))
                        .moveTo(PointOption.point(x, end_y))
                        .release();
        dragNDrop.perform();
    }

如果您愿意,get X,Y coordinate of any Mobile Element可以按照以下说明获得

MobileElement element = (MobileElement) driver.findElementByAccessibilityId("SomeAccessibilityID");
Point location = element.getLocation();

要么

int leftX = element.getLocation().getX();
int rightX = leftX + element.getSize().getWidth();
int middleX = (rightX + leftX) / 2;
int upperY = element.getLocation().getY();
int lowerY = upperY+element.getSize().getHeight();
int middleY = (upperY + lowerY) / 2;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章