Appium 6.1.0 TouchActions против TouchAction - PullRequest
0 голосов
/ 06 ноября 2018

Я искал "правильный" или "последний" способ создания событий Tap / Swipe / Drag и т. Д. С использованием новейшего (на данный момент) Java-клиента Appium 6.1.0. Я видел разные документы на сайте Appium ( Нажмите, используя TouchActions , Touch, используя TouchAction ), и нет никаких ссылок, какие мне следует использовать (и что будет устаревшим?) .

new TouchAction(driver)
    .tap(tapOptions()
    .withElement(element(myElement)))
    .perform();

new TouchActions(driver)
    .singleTap(myElement)
    .perform();

Похоже, что TouchActions является частью проекта Selenium, а TouchAction является частью Appium, но это не значит, что Appium - правильный путь.

p.s В данный момент я использую браузеры Chrome / Safari для Android / iOS, но это не значит, что мне не нужна поддержка нативных приложений для кода.

Спасибо за ваше время

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018

Последний подход к использованию класса TouchAction состоит в том, чтобы использовать класс AndroidTouchAction вместо класса TouchAction, так как он теперь стал универсальным. Вот почему вы видите @SuppressWarnings("rawtypes"), использованный в последнем ответе.

Так вы нажмете на элемент в 6.1.0

.

Для Android:

AndroidTouchAction touch = new AndroidTouchAction (driver);
touch.tap (TapOptions.tapOptions ()
    .withElement (ElementOption.element (e)))
  .perform ();

Для iOS:

IOSTouchAction touch = new IOSTouchAction (driver);
touch.tap (TapOptions.tapOptions ()
    .withElement (ElementOption.element (e)))
  .perform ();
0 голосов
/ 06 ноября 2018

Вы хотите использовать TouchAction (Appium).

Ниже приведен раздел моего кода. Первая - это общая функция прокрутки, которая принимает координаты в качестве параметров. Как правило, вы не вызывали бы эту функцию напрямую, она должна была вызываться другими функциями, такими как функция scrollDown, которую я включил ниже, которая вычисляет координаты и вызывает общую функцию прокрутки.

Надеюсь, это поможет.

/**
 * This method scrolls based upon the passed parameters
 * @author Bill Hileman
 * @param int startx - the starting x position
 * @param int starty - the starting y position
 * @param int endx - the ending x position
 * @param int endy - the ending y position
 */
@SuppressWarnings("rawtypes")
public void scroll(int startx, int starty, int endx, int endy) {

    TouchAction touchAction = new TouchAction(driver);

    touchAction.longPress(PointOption.point(startx, starty))
               .moveTo(PointOption.point(endx, endy))
               .release()
               .perform();

}

/**
 * This method does a swipe upwards
 * @author Bill Hileman
 */
public void scrollDown() {

    //The viewing size of the device
    Dimension size = driver.manage().window().getSize();

    //Starting y location set to 80% of the height (near bottom)
    int starty = (int) (size.height * 0.80);
    //Ending y location set to 20% of the height (near top)
    int endy = (int) (size.height * 0.20);
    //x position set to mid-screen horizontally
    int startx = (int) size.width / 2;

    scroll(startx, starty, startx, endy);

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...