【问题标题】:Take a screenshot during dragging in AppiumAppium中拖拽时截图
【发布时间】:2016-03-16 01:09:24
【问题描述】:

在 Android 中,我需要在我的应用程序中拖动一个对象并在仍持有该对象时截取屏幕截图。

我知道有两种使用触摸动作的方法(我什至没有考虑更高级别的方法,例如 swipe(),因为它们让我对触摸动作的控制少得多):

new TouchAction(driver).press(element).moveTo(x,y).release().perform();

driver.performTouchAction(new TouchAction(driver).press(element).moveTo(x,y).release());

当我尝试将我的触摸动作分成两部分,并在其间插入屏幕截图时,如下代码所示:

new TouchAction(driver)
    .press(x,y)
    .moveTo(newX,newY)
    .perform();

takeScreenshot(); // My own implementation for readability 

new TouchAction(driver)
    .release()
    .perform();

我收到以下错误:

org.openqa.selenium.WebDriverException: ERROR running Appium command: Cannot read property 'x' of null
Command duration or timeout: 14 milliseconds

程序在第二次触摸动作时失败,即截图成功,但我以这种方式抓取后无法释放对象。

有什么想法吗?

【问题讨论】:

    标签: android automation screenshot appium


    【解决方案1】:

    通过查看您的问题

    new TouchAction(driver)
        .release()
        .perform();
    

    为发布提供一些 x 和 y 位置以发布尝试可能会工作

    【讨论】:

    • 不确定我对你的理解是否正确,但如果你建议我尝试.release(x, y),则没有这种方法(至少在Appium的Java客户端中)。跨度>
    • 尽管我不能直接使用您的答案,但您将我引向了正确的方向,非常感谢您!我的最终代码如下所示:touchAction.moveTo(0,0).release().perform(); 其中 touchAction 指的是第一个 TouchAction 对象:TouchAction touchAction = new TouchAction(driver).press(x,y). etc... 通过使用对同一个 touchAction 的引用,并将坐标“移动”0,我能够完成第二个动作。
    猜你喜欢
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-09
    相关资源
    最近更新 更多