на странице, открытой на странице в appium, не работает прокрутка - PullRequest
0 голосов
/ 30 ноября 2018

прокрутка работает нормально на обычных страницах в приложениях для Android. Но если я нажму на какой-либо элемент, он откроется как новая страница поверх существующей страницы, там прокрутка не работает в автоматизации приложений с помощью touchaction. Вот мой код для прокрутки

public void scrollDown(AppiumDriver driver){
  try {
    int height = driver.manage().window().getSize().getHeight();
    TouchAction touchAction = new TouchAction(driver);
    touchAction.longPress(5, height * 2 / 3).moveTo(5, height / 
    3).release().perform();
      }
  catch(Exception e) {
    e.getMessage();
}}

1 Ответ

0 голосов
/ 01 декабря 2018

Скорее всего, вы не запускаете свайп в границах вида свайпов.Хороший способ отладки, если дело обстоит так, состоит в том, чтобы активировать опцию Pointer location в опциях разработчика Android, а затем посмотреть, где соприкасается автоматизация.

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

MobileElement el = myElement; // Pretend this is a real element :D
el.getSize();   // This has a getHeight() and getWidth() function
el.getLocation; // This has a getX() and getY() function

Теперь, что вы можете сделать (если вы проводите пальцем по прямоугольному полю, выясните, какие самые маленькие и самые большие позиции x и y.

Чтобы получить позиции Y легко просто:

int smallestY = el.getLocation.getY();
int largestY = smallestYPosition + el.getSize().getHeight();

Теперь, чтобы получить позиции X:

int smallestX = el.getLocation.getX();
int largestX = smallestX + el.getSize().getHeight();

Теперь используйте эти точки при смахивании.

Это будетработать в базовых случаях, но, насколько я понимаю, если элемент шире, чем размер экрана, возникнут проблемы, поэтому вам придется с этим справиться.

Надеюсь, это поможет вам разработать способ, который будет работать для вашего конкретного случая.в настоящее время я не могу дать ответ, который будет работать для вас из коробки.

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