Метод прокрутки не работает при тестировании автоматизации Android

Я пытаюсь реализовать метод салфетки. Может быть, я знаю, что является правильным способом достижения моей цели?

public void swipeWithCordinateLocation(WebDriver driver,double startX, double startY,double endX,double endY, double Duration) { JavascriptExecutor js = (JavascriptExecutor) driver; HashMap<String, Double> swipeObject = new HashMap<String, Double>(); swipeObject.put("x", startX); swipeObject.put("y", startY); swipeObject.put("x", endX); swipeObject.put("y",endY ); swipeObject.put("duration", Duration); // HashMap[] param = {swipeObject}; js.executeScript("mobile: swipe", swipeObject); } common.swipeWithCordinateLocation(driver, 100.00, 500.00, 500.00, 500.00, 1.00); 

Но appium выполняет салфетки, но требует разных учетных данных

 [x=360][y=592] to [x=360][y=592] 

, что делать? Кто-нибудь может мне помочь.

Лучший способ проанализировать автоматическое прокручивание – включить опции «Показать штрихи» и «местоположение указателя» в вашем варианте разработчика.

Правильный код для параметров салфетки –

 swipeObject.put("startX", 198.00); swipeObject.put("startY", 685.00); swipeObject.put("endX", 198.00); swipeObject.put("endY", 550.00); swipeObject.put("duration", 1.0); 

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

Или даже лучший способ – использовать что-то вроде использования фракций –

 swipeObject.put("startX", 0.50); swipeObject.put("startY", 0.50); swipeObject.put("endX", 0.50); swipeObject.put("endY", 0.35); swipeObject.put("duration", 1.0); 

Лучшим решением является использование swipe () AppiumDriver, как показано ниже:

Проведите пальцем влево:

  public void swipeLeft() { AppiumDriver appiumDriver = (AppiumDriver) driver; appiumDriver.context("NATIVE_APP"); Dimension size = appiumDriver.manage().window().getSize(); int startx = (int) (size.width * 0.8); int endx = (int) (size.width * 0.20); int starty = size.height / 2; appiumDriver.swipe(startx, starty, endx, starty, 1000); } 

Проведите по экрану справа:

  public void swipeRight() { AppiumDriver appiumDriver = (AppiumDriver) driver; appiumDriver.context("NATIVE_APP"); Dimension size = appiumDriver.manage().window().getSize(); int endx= (int) (size.width * 0.8); int startx = (int) (size.width * 0.20); int starty = size.height / 2; appiumDriver.swipe(startx, starty, endx, starty, 1000); } 

Вы можете добиться такого же результата при помощи TouchAction

  TouchAction action = new TouchAction(androidDriver); action.press(0, 500) .waitAction(200) .moveTo(0, 200) .release() .perform(); 

Просто играйте с координатами, чтобы получить пропущенную прокрутку.

Вы также можете использовать uiautomator для того же самого. Это поможет вам автоматизировать тесты очень эффективно и быстрее.

Вы можете узнать больше об этом на странице http://developer.android.com/tools/help/uiautomator/index.html

Intereting Posts
Android: сделайте телефонный звонок со службы Могу ли я быть уверенным, что приложение Android закончило работу, проверив isFinish () в главной операции onPause ()? Как проверить, имеет ли значение EditText значение в Android / Java Программно печатать документ с принтера по локальной сети Wi-Fi или Bluetooth Android mediaRecorder.setAudioSource не удалось Как подключить терминал к эмулятору Android Поиск скорости выборки сенсорного экрана в Android Поддерживает ли Android виджет, такой как iPhone UIPickerView Отображение наложения на экране Android API Twitter4j не перенаправляет приложение на кнопку «Назад» нажимает на android Как включить Пробуждение в вариантах разработчика с использованием АБР? Отправьте строку на Android с помощью HttpPost без использования nameValuePairs Глобальный планировщик макетов Android, вызываемый повторно в android Как использовать Crypto ++ с Jni или NDK для приложения для Android Мобильный барьер развития для входа