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

Appium 6.1.0 TouchActions vs TouchAction

通博实
2023-03-14

我正在使用最新(目前)的Appium Java client 6.1.0搜索创建点击/滑动/拖动等事件的“正确”或“最新”方法。我在Appium网站上看到了不同的文档(点击使用TouchActions,触摸使用TouchAction),没有关于我应该使用哪种文档的参考(哪些文档将被弃用?)。

new TouchAction(driver)
    .tap(tapOptions()
    .withElement(element(myElement)))
    .perform();

new TouchActions(driver)
    .singleTap(myElement)
    .perform();

似乎TouchActions是Selenium项目的一部分,TouchAction是Appium的一部分,但这并不意味着Appium是正确的方式。

p、 s我目前使用的Android/iOS浏览器是Chrome/Safari,但这并不意味着我不需要本地应用程序支持代码

谢谢你抽出时间

共有2个答案

龚志
2023-03-14

您想使用TouchAction(Appium)。

下面是我代码的一部分。第一个是以坐标为参数的通用滚动函数。您通常不会直接调用该函数,它是由其他函数调用的,比如下面包含的滚动函数,它计算坐标并调用通用滚动函数。

希望这能有所帮助。

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

}
徐凌
2023-03-14

使用TouchAction类的最新方法是使用AndroidTouchAction类而不是TouchAction类,因为相同的类现在是通用的。这就是为什么您会在最后一个答案中看到@SuppressWarnings("rawtype")

这是您在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 ();
 类似资料:

相关问答

相关文章

相关阅读