перетаскивай быстрее в appium - PullRequest
0 голосов
/ 14 января 2020

Я тестирую приложение через appium с библиотекой webdriver.io. Там у меня есть простой JS код, где я открываю приложение для тестирования экрана и затем рисую линию от одной точки к другой. Проблема в том, что я не знаю, как изменить скорость, которую рисует линия. Я не смог найти никакой документации.

Вот весь мой код:

const wdio = require("webdriverio")
const opts = {
  port: 4723,
  capabilities: {
    platformName: "Android",
    deviceName: "cbb3309d",
    appPackage: "jp.rallwell.siriuth.touchscreentest",
    appActivity: ".TouchScreenTestActivity",
    automationName: "UiAutomator2",
    noReset: true,
  }
}

function timeout(ms) {
  return new Promise(resolve => setTimeout(resolve, ms))
}

async function main() {
  const client = await wdio.remote(opts)
  client.setTimeouts(15000)
  await timeout(5000)
  client.touchAction([
        { action: 'longPress', x: 500, y: 100,},
        { action: 'moveTo', x: 500, y: 2000},
        'release'
])
}

main()

1 Ответ

0 голосов
/ 13 февраля 2020

Я обнаружил, что есть еще одна функция, поэтому я создал свою собственную функцию:

async function dragAndDrop(options) {
    let actions = new wd.W3CActions(driver);
    let touchInput = actions.addTouchInput();
    touchInput.pointerMove({
        duration: 0,
        x: options.fromX,
        y: options.fromY
    });
    touchInput.pointerDown({
        button: 0
    });
    touchInput.pause({
        duration: options.pressTime
    });
    touchInput.pointerMove({
        duration: options.moveTime,
        x: options.toX,
        y: options.toY
    });
    touchInput.pause({
        duration: options.releaseTime
    });
    touchInput.pointerUp({
        button: 0
    });
    await actions.perform();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...