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

Java iPhone屏幕/Android屏幕上的X轴和Y轴格式是什么?,java,android,ios,appium,Java,Android,Ios,Appium,我一直在研究iPhone屏幕上设置的X轴和Y轴,因为我试图使用Appium在应用程序上运行自动测试。我工作的一部分是刷卡,但我遇到了移动点、X点和Y点的问题 我不知道iPhone屏幕或Android屏幕上X轴和Y轴的界限是什么。因此,我不确定光标从何处滑动或滑动到何处 到目前为止,我已经能够通过下面的代码进行一次刷卡 TouchAction action1 = new TouchAction((PerformsTouchActions) driver); action1.pres

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

我不知道iPhone屏幕或Android屏幕上X轴和Y轴的界限是什么。因此,我不确定光标从何处滑动或滑动到何处

到目前为止,我已经能够通过下面的代码进行一次刷卡

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

    }
for(int i=0;i
十、 Y坐标取决于所使用的设备/仿真器
自动化如果设备有大的显示X,Y值将很高

我建议在坐标的帮助下,在滑动或滚动过程中不要使用X,Y的
硬编码值,因为无论何时在小屏幕设备上移动
,它都会抛出异常点

请看一看,当滚动到底部时,如何借助设备的高度和宽度获得动态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();
    }
如果您想
获得任何移动元件的X,Y坐标
,您可以获得如下所述的坐标

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;

x和y的限制取决于设备的类型。通常(至少在iOS中),我们将x和y值与视图的
边界
宽度
高度
进行比较…@Light up为一个好问题和最需要知道的问题投票