通过 Browserstack 使用 Geb 的移动设备手势

Mobile device gestures with Geb through Browserstack

我正在尝试使用 Browserstack 和 Geb 测试移动浏览器。我在通过 Browserstack 注册滑动操作时遇到问题。我也在使用 Browserstack 的新真实设备进行测试。我对此很陌生,但据我了解,Geb 内置了动作,因此您不必实例化动作命令,而是使用交互 class。另一方面,我假设 Browserstack 不需要您导入 appium 并且您不需要在项目中使用它来使用触摸操作。我想知道是否有人成功使用过交互和触摸操作。我试过:

def swipe(){
    interact {
        dragAndDropBy(image, 0, -200)
    }
}

上面的滑动方法但是当我希望它放下项目时却点击了

我也试过:

def swipe2(){
    interact {
        flick(image,-70,0,2)
    }
}

但收到此错误:

    No signature of method: utils.NonEmptyNavigator.flick() is applicable for argument types: (geb.content.TemplateDerivedPageContent, java.lang.Integer, java.lang.Integer, java.lang.Integer) values: [apps.site.pages.MensLandingPage -> image: utils.NonEmptyNavigator, ...]

如果我的处理方式有误、误解了某些内容,或者您​​需要更多信息,请告诉我。

Geb 目前仅支持在 Actions and not on TouchActions inside of interact {} blocks. I've added an issue for adding support for it 上定义的方法到 Geb 的跟踪器。

同时您可以回退到直接使用 TouchActions class:

def actions = new TouchActions(browser.driver)
actions.flick(image.singleElement(), -70, 0, 2)
actions.perform()