Appiumスライドピット記
3739 ワード
前言
Java-clientバージョンによって、多くのAPIが大きく変化しているため、一部のAPIでは失効したり、使用方法が変化したりしていることがわかります.スライドはその1つです.この文章では、java-clientバージョンや異なるAppiumバージョンでスライドして使用することを紹介し、ピットを踏まないようにしています.
異なるjava-clientバージョン
現在のAppiumバージョンはAppium desktop V 1である.8.2(Appium Server V1.9.1)
java-client V4.1.2
このバージョンでは、java-clientにはswipeメソッドがあり、スライドを完了するのに役立ちます.
シングルスライド
マルチスライド
java-client V5.0.4
このバージョンでは、swipeメソッドは失効しており、スライドを完了するためにコードを書く必要があります.
シングルスライド
マルチスライド
java-client V6.1.0
このバージョンのAPIの使用方法はV 5を比較する.0.4が変化し、パラメータが前のintタイプ(XY軸座標)からPoint Optionタイプに変わりました
シングルスライド
マルチスライド
異なるAppiumバージョン
異なるAppiumバージョンは、単一スライドでは絶対座標の方式ですが、複数回スライドする場合(つまり複数回moveTo)には、入力された座標のあるAppiumは絶対座標ではなく、前の座標に対するオフセット量であることに注意してください.
現在のjava-clientバージョンV 6.1.0
Appium desktop V1.5.0(Appium Server V1.7.2)
このバージョンでは、複数回のmoveToは前の座標に入力されたオフセット量である必要があります.
Appium desktop V1.8.2(Appium Server V1.9.1)
このバージョンではApiumが変更され、複数回moveToが使用される絶対座標になります
Java-clientバージョンによって、多くのAPIが大きく変化しているため、一部のAPIでは失効したり、使用方法が変化したりしていることがわかります.スライドはその1つです.この文章では、java-clientバージョンや異なるAppiumバージョンでスライドして使用することを紹介し、ピットを踏まないようにしています.
異なるjava-clientバージョン
現在のAppiumバージョンはAppium desktop V 1である.8.2(Appium Server V1.9.1)
java-client V4.1.2
このバージョンでは、java-clientにはswipeメソッドがあり、スライドを完了するのに役立ちます.
void io.appium.java_client.android.AndroidDriver.swipe(int startx, int starty, int endx, int endy, int duration)
//Convenience method for swiping across the screen.
Overrides: swipe(...) in AppiumDriver
Parameters:
startx starting x coordinate.
starty starting y coordinate.
endx ending x coordinate.
endy ending y coordinate.
duration amount of time in milliseconds for the entire swipe action to take
シングルスライド
// ,
androidDriver.swipe(145, 448, 345, 448, 300);
マルチスライド
TouchAction touchAction = new TouchAction(androidDriver);
touchAction.press(145,448).waitAction(100).moveTo(345, 448).moveTo(560, 448).release().perform();
java-client V5.0.4
このバージョンでは、swipeメソッドは失効しており、スライドを完了するためにコードを書く必要があります.
シングルスライド
TouchAction touchAction = new TouchAction(androidDriver);
Duration duration = Duration.ofMillis(100);
touchAction.press(145,448).waitAction(duration).moveTo(345,448).release().perform();
マルチスライド
TouchAction touchAction = new TouchAction(androidDriver);
Duration duration = Duration.ofMillis(100);
touchAction.press(145,448).waitAction(duration).moveTo(345, 448).moveTo(560, 448).release().perform();
java-client V6.1.0
このバージョンのAPIの使用方法はV 5を比較する.0.4が変化し、パラメータが前のintタイプ(XY軸座標)からPoint Optionタイプに変わりました
シングルスライド
TouchAction touchAction = new TouchAction(androidDriver);
Duration duration = Duration.ofMillis(100);
touchAction.press(PointOption.point(145, 448)).waitAction(WaitOptions.waitOptions(duration))
.moveTo(PointOption.point(345, 448)).release().perform();
マルチスライド
//
TouchAction touchAction = new TouchAction(androidDriver);
Duration duration = Duration.ofMillis(300);
touchAction.press(PointOption.point(145, 448)).waitAction(WaitOptions.waitOptions(duration))
.moveTo(PointOption.point(345, 448)).waitAction(WaitOptions.waitOptions(duration))
.moveTo(PointOption.point(560, 448)).release().perform();
異なるAppiumバージョン
異なるAppiumバージョンは、単一スライドでは絶対座標の方式ですが、複数回スライドする場合(つまり複数回moveTo)には、入力された座標のあるAppiumは絶対座標ではなく、前の座標に対するオフセット量であることに注意してください.
現在のjava-clientバージョンV 6.1.0
Appium desktop V1.5.0(Appium Server V1.7.2)
このバージョンでは、複数回のmoveToは前の座標に入力されたオフセット量である必要があります.
Duration duration = Duration.ofMillis(100);
//Appium Server V1.7.2,
touchAction.press(PointOption.point(145, 448)).waitAction(WaitOptions.waitOptions(duration))
.moveTo(PointOption.point(200, 0)).waitAction(WaitOptions.waitOptions(duration))
.moveTo(PointOption.point(200, 0)).release().perform();
Appium desktop V1.8.2(Appium Server V1.9.1)
このバージョンではApiumが変更され、複数回moveToが使用される絶対座標になります
Duration duration = Duration.ofMillis(100);
//Appium Server V1.9.1,
touchAction.press(PointOption.point(145, 448)).waitAction(WaitOptions.waitOptions(duration))
.moveTo(PointOption.point(345, 448)).waitAction(WaitOptions.waitOptions(duration))
.moveTo(PointOption.point(545, 448)).release().perform();