Size: a a a

Мобильное тестирование с Appium

2019 December 10

PS

Pavel Subbotin in Мобильное тестирование с Appium
Evgeny Shandrik
можно взглянуть?
@Step("Swipe on screen, direction: {0}, times: {1} on platform {2}")
@Override
public void swipeOnScreen(SwipeDirection direction, int times, String platform) {
   if (checkPlatform(platform)) {
       int[] coordinates = context.helper().getSwipeCoordinates(direction);
       swipeOnScreen(coordinates, direction, times);
   }
}

public void swipeOnScreen(int[] coordinates, SwipeDirection direction, int times) {
   int start_point_x = coordinates[0];
   int start_point_y = coordinates[1];
   int delta_x = coordinates[2];
   int delta_y = coordinates[3];

   int end_point_x = start_point_x + delta_x;
   int end_point_y = start_point_y + delta_y;

   // check if not going out of screen bounds
   Dimension screen_size = context.getDriver().manage().window().getSize();
   int screen_width = screen_size.width;
   if (start_point_x <= 0.0) {
       start_point_x = 1;
   }
   if (end_point_x <= 0.0) {
       end_point_x += 1;
   }
   if (start_point_x >= screen_width) {
       start_point_x = screen_width - 1;
   }
   if (end_point_x >= screen_width) {
       end_point_x = screen_width - 1;
   }

   TouchAction swipe = new TouchAction(context.getDriver());
   while (times > 0) {
       swipe
               .press(PointOption.point(start_point_x, start_point_y))
               .waitAction(WaitOptions.waitOptions(Duration.ofMillis(2000)))
               .moveTo(PointOption.point(end_point_x, end_point_y))
               .release()
               .perform();
       log.info("Swipe {} ({}, {}) -> ({}, {})",
               direction,
               start_point_x,
               start_point_y,
               end_point_x,
               end_point_y);
       times -= 1;
   }
}
источник

BO

Boris Osipov in Мобильное тестирование с Appium
Pavel Subbotin
@Step("Swipe on screen, direction: {0}, times: {1} on platform {2}")
@Override
public void swipeOnScreen(SwipeDirection direction, int times, String platform) {
   if (checkPlatform(platform)) {
       int[] coordinates = context.helper().getSwipeCoordinates(direction);
       swipeOnScreen(coordinates, direction, times);
   }
}

public void swipeOnScreen(int[] coordinates, SwipeDirection direction, int times) {
   int start_point_x = coordinates[0];
   int start_point_y = coordinates[1];
   int delta_x = coordinates[2];
   int delta_y = coordinates[3];

   int end_point_x = start_point_x + delta_x;
   int end_point_y = start_point_y + delta_y;

   // check if not going out of screen bounds
   Dimension screen_size = context.getDriver().manage().window().getSize();
   int screen_width = screen_size.width;
   if (start_point_x <= 0.0) {
       start_point_x = 1;
   }
   if (end_point_x <= 0.0) {
       end_point_x += 1;
   }
   if (start_point_x >= screen_width) {
       start_point_x = screen_width - 1;
   }
   if (end_point_x >= screen_width) {
       end_point_x = screen_width - 1;
   }

   TouchAction swipe = new TouchAction(context.getDriver());
   while (times > 0) {
       swipe
               .press(PointOption.point(start_point_x, start_point_y))
               .waitAction(WaitOptions.waitOptions(Duration.ofMillis(2000)))
               .moveTo(PointOption.point(end_point_x, end_point_y))
               .release()
               .perform();
       log.info("Swipe {} ({}, {}) -> ({}, {})",
               direction,
               start_point_x,
               start_point_y,
               end_point_x,
               end_point_y);
       times -= 1;
   }
}
лушче https://gist.github.com/ или пастебин..
источник

MB

Mikhail Barinov in Мобильное тестирование с Appium
Evgeny Shandrik
можно взглянуть?
Да, чуть позже скину сюда. Комп разрядился.
источник

ES

Evgeny Shandrik in Мобильное тестирование с Appium
Mikhail Barinov
Да, чуть позже скину сюда. Комп разрядился.
Спасибо, интересно взглянуть
источник

MB

Mikhail Barinov in Мобильное тестирование с Appium
Evgeny Shandrik
Спасибо, интересно взглянуть
def left_swipe(self):
   size = self.driver.get_window_size()
   startx, starty = int(size['width']) * 0.8, int(size['height']) * 0.5
   endx, endy = int(size['width']) * 0.2, int(size['height']) * 0.5
   self.driver.swipe(startx, starty, endx, endy, 300)
источник

MB

Mikhail Barinov in Мобильное тестирование с Appium
вот такой метод. из коробки почему то не срабатывает на сплэш экранах (в iOS по крайней мере)
источник

MB

Mikhail Barinov in Мобильное тестирование с Appium
этот метод хорош, что подойдёт к любому экрану. Даже на планшеты. Правда на планшетах, особенно в альбомной ориентации, получится длиннющий свайп)
источник

ES

Evgeny Shandrik in Мобильное тестирование с Appium
Mikhail Barinov
def left_swipe(self):
   size = self.driver.get_window_size()
   startx, starty = int(size['width']) * 0.8, int(size['height']) * 0.5
   endx, endy = int(size['width']) * 0.2, int(size['height']) * 0.5
   self.driver.swipe(startx, starty, endx, endy, 300)
Завтра попробую затестить у себя
источник

ES

Evgeny Shandrik in Мобильное тестирование с Appium
Спасибо
источник

ИП

Иван Петрович in Мобильное тестирование с Appium
кто занет как запутить  правильно эту штуку  UIAutomatorViewer
источник

КЕ

Кристина Езикова in Мобильное тестирование с Appium
Иван Петрович
кто занет как запутить  правильно эту штуку  UIAutomatorViewer
Перейти в папку с uiautomatorviewer и вызвать его через консоль( либо если у вас пути настроены уже от корня то просто набрать эту команду).
источник

КЕ

Кристина Езикова in Мобильное тестирование с Appium
Или если у вас остановлен android device monitor то там по-моему есть вкладка как туда перейти через интерфейс
источник
2019 December 11

IV

Igor Vlasyuk in Мобильное тестирование с Appium
Друзья, подскажите как запускать appium тесты на маке? В интернетах нашел что на маке Android драйвер нужно создавать так driver = new AndroidDriver(desiredCapabilities); - без url первым параметром, иначе ошибка WebDriverException: Connection refused
Если изначально поднять appium, то при создании Android драверва будет Error: listen EADDRINUSE: address already in use 0.0.0.0:4723. Если аппиум не поднимать а просто запускать тест то в консоли вижу следующее
[Appium] Appium REST http interface listener started on 0.0.0.0:4723
java.lang.IllegalArgumentException: org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.

Как правильно запускать appium тесты на маке ?
источник

D

Dmitry in Мобильное тестирование с Appium
Igor Vlasyuk
Друзья, подскажите как запускать appium тесты на маке? В интернетах нашел что на маке Android драйвер нужно создавать так driver = new AndroidDriver(desiredCapabilities); - без url первым параметром, иначе ошибка WebDriverException: Connection refused
Если изначально поднять appium, то при создании Android драверва будет Error: listen EADDRINUSE: address already in use 0.0.0.0:4723. Если аппиум не поднимать а просто запускать тест то в консоли вижу следующее
[Appium] Appium REST http interface listener started on 0.0.0.0:4723
java.lang.IllegalArgumentException: org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.

Как правильно запускать appium тесты на маке ?
1) А почему на Маке как-то по-другому должно работать?

2) Разберитесь, почему сервер Appium'а иногда 2 раза пытается запуститься --> EADDRINUSE. Ответьте на вопросы "где запускается Appium?" и "верно ли до него указан путь?".
источник

A

Anton in Мобильное тестирование с Appium
Igor Vlasyuk
Друзья, подскажите как запускать appium тесты на маке? В интернетах нашел что на маке Android драйвер нужно создавать так driver = new AndroidDriver(desiredCapabilities); - без url первым параметром, иначе ошибка WebDriverException: Connection refused
Если изначально поднять appium, то при создании Android драверва будет Error: listen EADDRINUSE: address already in use 0.0.0.0:4723. Если аппиум не поднимать а просто запускать тест то в консоли вижу следующее
[Appium] Appium REST http interface listener started on 0.0.0.0:4723
java.lang.IllegalArgumentException: org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.

Как правильно запускать appium тесты на маке ?
у тебя webdriver или webdriverIO?
источник

IV

Igor Vlasyuk in Мобильное тестирование с Appium
у меня AndroidDriver)
источник

MB

Mikhail Barinov in Мобильное тестирование с Appium
Igor Vlasyuk
Друзья, подскажите как запускать appium тесты на маке? В интернетах нашел что на маке Android драйвер нужно создавать так driver = new AndroidDriver(desiredCapabilities); - без url первым параметром, иначе ошибка WebDriverException: Connection refused
Если изначально поднять appium, то при создании Android драверва будет Error: listen EADDRINUSE: address already in use 0.0.0.0:4723. Если аппиум не поднимать а просто запускать тест то в консоли вижу следующее
[Appium] Appium REST http interface listener started on 0.0.0.0:4723
java.lang.IllegalArgumentException: org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.

Как правильно запускать appium тесты на маке ?
У меня аппиум этоо десктоп клиент. тесты запускаю из консоли (использую pytest).
источник

IV

Igor Vlasyuk in Мобильное тестирование с Appium
почему то мне кажется что моя проблема связана с политикой безопасности мака... ЧТобы Java могла нормально работать, нужно делать какие то настройки безопасности для неё на маке ?
источник

AD

Aleksandr Dolinskiy in Мобильное тестирование с Appium
там надо ставить все нормально, беда начинается если тот же аппиум установлен от другого пользователя
источник

AD

Aleksandr Dolinskiy in Мобильное тестирование с Appium
а вообще ошибка выше про то что 2 апиума пытаются запуститься и порт занят
источник