Appium Android中无法拖放

Posted

技术标签:

【中文标题】Appium Android中无法拖放【英文标题】:Unable to drag and drop in Appium Android 【发布时间】:2018-02-14 09:38:20 【问题描述】:

我正在使用 Appium 1.6.5 和 Windows 10。

使用 Appium 的演示应用程序 (ApiDemos-debug.apk),我正在尝试拖放点。

查看应用屏幕:

这是我当前的代码:

TouchAction actions = new TouchAction(driver);
actions.tap((androidElement)driver.findElementByAndroidUIAutomator("text(\"Views\")")).perform();

driver.findElementByAndroidUIAutomator("text(\"Drag and Drop\")").click();

AndroidElement element1 = driver.findElement(By.id("io.appium.android.apis:id/drag_dot_1"));

AndroidElement element2 = driver.findElement(By.id("io.appium.android.apis:id/drag_dot_2"));

actions.longPress(element1).waitAction(3000).perform().release();

运行测试时会打印此错误:

org.openqa.selenium.NoSuchElementException:一个元素不能 使用给定的搜索参数位于页面上。 (警告: 服务器没有提供任何堆栈跟踪信息)

longPress() 调用的任何组合都会导致此错误。我可以点击并点击,这很好。当涉及到使用其他 TouchAction 方法时,就会出现错误。

知道如何解决这个问题吗?需要知道是我的设置错误还是 TouchAction 方法有问题。

【问题讨论】:

如果我要添加一个新的 TouchAction 变量(例如 actions2)并使用它来调用另一个 TouchAction 方法,它将起作用。不确定这是 Appium 版本的问题还是 perform() 方法没有清除命令队列(如果它甚至打算这样做的话)。 【参考方案1】:

您需要长按该元素并将其拖动到其他元素。目前,您只是长按并执行操作而不释放它。

试试这个:

actions.longPress(element1).moveTo(element2).release().perform();

【讨论】:

以上是关于Appium Android中无法拖放的主要内容,如果未能解决你的问题,请参考以下文章

Appium + Python + Windows10 Android 搭建 攻略

bootstrap之UpdateStrings

appium 长按而不是移动元素(拖放)不起作用

自动化测试 Appium之Python运行环境搭建 Part2

无法使用 Appium 在 Android 的权限对话框中单击允许按钮

无法在Appium Android中切换区域设置