Appium 6.1.0 TouchActions 与 TouchAction
Appium 6.1.0 TouchActions vs TouchAction
我正在寻找 "right" 或 "latest" 方法来使用最新的(此时)Appium Java-客户端创建 Tap/Swipe/Drag 等事件6.1.0。
我在 Appium 站点 (Tap using TouchActions, Touch using TouchAction) 中看到了不同的文档,但没有关于我应该使用哪个的参考(以及哪个将被弃用?)。
new TouchAction(driver)
.tap(tapOptions()
.withElement(element(myElement)))
.perform();
new TouchActions(driver)
.singleTap(myElement)
.perform();
好像TouchActions是Selenium项目的一部分,TouchAction是Appium的一部分,但并不代表Appium就是正确的方式。
p.s 我目前正在使用 Chrome/Safari 浏览器进行 Android/iOS 测试,但这并不意味着我不需要本机应用程序支持代码。
感谢您的宝贵时间
您想使用 TouchAction (Appium)。
下面是我的代码的一部分。第一个是一般的滚动函数,它以坐标为参数。您通常不会直接调用该函数,它应该由其他函数调用,例如我在其下方包含的 scrollDown 函数,该函数计算坐标并调用一般滚动函数。
希望对您有所帮助。
/**
* This method scrolls based upon the passed parameters
* @author Bill Hileman
* @param int startx - the starting x position
* @param int starty - the starting y position
* @param int endx - the ending x position
* @param int endy - the ending y position
*/
@SuppressWarnings("rawtypes")
public void scroll(int startx, int starty, int endx, int endy) {
TouchAction touchAction = new TouchAction(driver);
touchAction.longPress(PointOption.point(startx, starty))
.moveTo(PointOption.point(endx, endy))
.release()
.perform();
}
/**
* This method does a swipe upwards
* @author Bill Hileman
*/
public void scrollDown() {
//The viewing size of the device
Dimension size = driver.manage().window().getSize();
//Starting y location set to 80% of the height (near bottom)
int starty = (int) (size.height * 0.80);
//Ending y location set to 20% of the height (near top)
int endy = (int) (size.height * 0.20);
//x position set to mid-screen horizontally
int startx = (int) size.width / 2;
scroll(startx, starty, startx, endy);
}
使用TouchAction
class的最新方法是使用AndroidTouchAction
class而不是现在的TouchAction
class通用。这就是为什么您在最后一个答案中看到使用 @SuppressWarnings("rawtypes")
的原因。
这是您在 6.1.0 中点击元素的方式
对于Android:
AndroidTouchAction touch = new AndroidTouchAction (driver);
touch.tap (TapOptions.tapOptions ()
.withElement (ElementOption.element (e)))
.perform ();
对于iOS:
IOSTouchAction touch = new IOSTouchAction (driver);
touch.tap (TapOptions.tapOptions ()
.withElement (ElementOption.element (e)))
.perform ();
我正在寻找 "right" 或 "latest" 方法来使用最新的(此时)Appium Java-客户端创建 Tap/Swipe/Drag 等事件6.1.0。 我在 Appium 站点 (Tap using TouchActions, Touch using TouchAction) 中看到了不同的文档,但没有关于我应该使用哪个的参考(以及哪个将被弃用?)。
new TouchAction(driver)
.tap(tapOptions()
.withElement(element(myElement)))
.perform();
new TouchActions(driver)
.singleTap(myElement)
.perform();
好像TouchActions是Selenium项目的一部分,TouchAction是Appium的一部分,但并不代表Appium就是正确的方式。
p.s 我目前正在使用 Chrome/Safari 浏览器进行 Android/iOS 测试,但这并不意味着我不需要本机应用程序支持代码。
感谢您的宝贵时间
您想使用 TouchAction (Appium)。
下面是我的代码的一部分。第一个是一般的滚动函数,它以坐标为参数。您通常不会直接调用该函数,它应该由其他函数调用,例如我在其下方包含的 scrollDown 函数,该函数计算坐标并调用一般滚动函数。
希望对您有所帮助。
/**
* This method scrolls based upon the passed parameters
* @author Bill Hileman
* @param int startx - the starting x position
* @param int starty - the starting y position
* @param int endx - the ending x position
* @param int endy - the ending y position
*/
@SuppressWarnings("rawtypes")
public void scroll(int startx, int starty, int endx, int endy) {
TouchAction touchAction = new TouchAction(driver);
touchAction.longPress(PointOption.point(startx, starty))
.moveTo(PointOption.point(endx, endy))
.release()
.perform();
}
/**
* This method does a swipe upwards
* @author Bill Hileman
*/
public void scrollDown() {
//The viewing size of the device
Dimension size = driver.manage().window().getSize();
//Starting y location set to 80% of the height (near bottom)
int starty = (int) (size.height * 0.80);
//Ending y location set to 20% of the height (near top)
int endy = (int) (size.height * 0.20);
//x position set to mid-screen horizontally
int startx = (int) size.width / 2;
scroll(startx, starty, startx, endy);
}
使用TouchAction
class的最新方法是使用AndroidTouchAction
class而不是现在的TouchAction
class通用。这就是为什么您在最后一个答案中看到使用 @SuppressWarnings("rawtypes")
的原因。
这是您在 6.1.0 中点击元素的方式
对于Android:
AndroidTouchAction touch = new AndroidTouchAction (driver);
touch.tap (TapOptions.tapOptions ()
.withElement (ElementOption.element (e)))
.perform ();
对于iOS:
IOSTouchAction touch = new IOSTouchAction (driver);
touch.tap (TapOptions.tapOptions ()
.withElement (ElementOption.element (e)))
.perform ();