BrowserStack - 使用 Appium 自动化 - Android 不支持 swipeGesture

问题描述 投票:0回答:2

使用 BroswerStack(Android 设备)使用 Appium 测试移动本机应用程序,当尝试执行 swipeGesture 来执行向上滑动时,它会抛出 UnsupportedCommandException(请参见下文)。顺便说一句,它正在使用真实设备或模拟器在本地执行中工作。

org.openqa.selenium.UnsupportedCommandException: Unknown mobile command "swipeGesture". 
Only shell,scrollBackTo,viewportScreenshot,deepLink,startLogsBroadcast,stopLogsBroadcast, 
acceptAlert,dismissAlert,batteryInfo,deviceInfo,changePermissions,getPermissions, 
performEditorAction,startScreenStreaming,stopScreenStreaming,getNotifications,listSms, 
type commands are supported.

我的代码如下

            ((JavascriptExecutor) driver).executeScript("mobile: swipeGesture", Map.of(
                    "left", location.x, "top", location.y - swipeBoxHigh,
                    "width", 100, "height", swipeBoxHigh,
                    "direction", "up",
                    "percent", 1,
                    "speed", 1500
            ));

知道为什么我在 browserStack 中遇到此异常吗?

有什么建议如何使用 browserStack 在 android 中执行滑动手势吗?

java appium appium-android browserstack browserstack-app-automate
2个回答
0
投票

您可以参考:https://www.browserstack.com/docs/app-automate/appium/advanced-features/appium-gestures在BrowserStack上使用滑动手势。

此外,尝试使用不同的 Appium 版本,包括您在本地运行测试所使用的版本。从以下位置获取帮助:https://www.browserstack.com/app-automate/capability


0
投票

public void swipeLeft(WebElement 元素) { // 获取元素的尺寸和坐标 int startX = element.getLocation().getX() + (int) (element.getSize().width * 0.8); // 距左侧 80% int endX = element.getLocation().getX() + (int) (element.getSize().width * 0.2); // 距左侧 20% int y = element.getLocation().getY() + (element.getSize().height / 2); // 元素的中心 Y // 为手势定义一个PointerInput PointerInput 手指 = new PointerInput(PointerInput.Kind.TOUCH, "手指"); 序列滑动 = new Sequence(finger, 1); // 移动到起始位置 swipe.addAction(finger.createPointerMove(Duration.ofMillis(0), PointerInput.Origin.viewport(), startX, y)); // 按下去 swipe.addAction(finger.createPointerDown(PointerInput.MouseButton.LEFT.asArg())); // 移动到结束位置 swipe.addAction(finger.createPointerMove(Duration.ofMillis(600), PointerInput.Origin.viewport(), endX, y)); // 发布 swipe.addAction(finger.createPointerUp(PointerInput.MouseButton.LEFT.asArg())); // 执行滑动操作 driver.perform(Arrays.asList(swipe)); }

© www.soinside.com 2019 - 2024. All rights reserved.