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 搭建 攻略
自动化测试 Appium之Python运行环境搭建 Part2