Size: a a a

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

2020 April 24

VM

Vyacheslav Markov in Мобильное тестирование с Appium
На iOS скроллю в цикле на небольшое расстояние, проверяя после каждой итерации присутствие элемента
источник

AG

Alina Gulakova in Мобильное тестирование с Appium
Vyacheslav Markov
На iOS скроллю в цикле на небольшое расстояние, проверяя после каждой итерации присутствие элемента
Мы так же. Только выход из цикла не забудь написать. А то можно зависнуть так
источник

MB

Mikhail Barinov in Мобильное тестирование с Appium
Спасибо за советы! Реализоовал вот так, только цикл почему то не останавливается:

def swipe_to_down(self, locator: str, timeout=2):
   by = get_locator_by_string(locator)
   element_none = WebDriverWait(self._driver, timeout).until(
       ex_cond.invisibility_of_element_located(by), ' : '.join(by))
   while element_none is True:
       self._driver.execute_script('mobile: scroll', {'direction': 'down'})

   return WebDriverWait(self._driver, timeout).until(
       ex_cond.visibility_of_element_located(by), ' : '.join(by))

Пойдуу повторю цикклы, что ли 😅
источник

MB

Mikhail Barinov in Мобильное тестирование с Appium
Mikhail Barinov
Спасибо за советы! Реализоовал вот так, только цикл почему то не останавливается:

def swipe_to_down(self, locator: str, timeout=2):
   by = get_locator_by_string(locator)
   element_none = WebDriverWait(self._driver, timeout).until(
       ex_cond.invisibility_of_element_located(by), ' : '.join(by))
   while element_none is True:
       self._driver.execute_script('mobile: scroll', {'direction': 'down'})

   return WebDriverWait(self._driver, timeout).until(
       ex_cond.visibility_of_element_located(by), ' : '.join(by))

Пойдуу повторю цикклы, что ли 😅
def swipe_to_down(self, locator: str, timeout=2):
   
   by = get_locator_by_string(locator)
   element_none = WebDriverWait(self._driver, timeout).until(
       ex_cond.invisibility_of_element_located(by), ' : '.join(by))
   element_vis = WebDriverWait(self._driver, timeout).until(
       ex_cond.invisibility_of_element_located(by), ' : '.join(by))

   while element_none is True:
       self._driver.execute_script('mobile: scroll', {'direction': 'down'})
       if element_vis is True:
           return element_vis

Изначально передавал не совсеем корректный локатор. Теперь всё работает корректно 🙂
источник

RA

Roza Abdullina in Мобильное тестирование с Appium
Здравствуйте! Помогите, пожалуйста.
Есть проект в Android Studio, установила appium  на mac через npm .
Начинаю создавать тест.  
Для начала пытаюсь импортнуть пакеты  DesiredCapabilities в тесте и задать desired capabilities , но не находит пакеты  и подчеркивает красным.
Подскажите, пожалуйста, что еще нужно сделать, чтобы тест заработал?
источник

S

SAR in Мобильное тестирование с Appium
appium-doctor --android
он тебе все расскажет)))
источник

RA

Roza Abdullina in Мобильное тестирование с Appium
Спасибо
Выдал что с обязательными зависимостями все ок
Есть warning в опциональных  зависимостях, от них как мне кажется не зависит проблема , или я ошибаюсь?И не совсем понятно нужны ли эти опции?
источник

S

SAR in Мобильное тестирование с Appium
Roza Abdullina
Спасибо
Выдал что с обязательными зависимостями все ок
Есть warning в опциональных  зависимостях, от них как мне кажется не зависит проблема , или я ошибаюсь?И не совсем понятно нужны ли эти опции?
Без опциональных должен заводиться
Наверное в самом коде ошибка
источник

S

SAR in Мобильное тестирование с Appium
На чём тесты пишешь?
источник

V

Vika_JuniorQA in Мобильное тестирование с Appium
Dmitriy Есть проблемы,я не весь алгоритм понимаю
источник
2020 April 25

V

Vika_JuniorQA in Мобильное тестирование с Appium
Dmitriy Можете помочь?
источник

AY

Arsen Yuri4 in Мобильное тестирование с Appium
Привет челики 🙂 а поделитесь инфой, кто как настроил моб тестирование? Какие Фреймворки используете? Интересует и iOS и android. Только начал в этом разбираться, так аппиум уже с ума сводит, особенно комбинация мак, iOS,appium - настроить не получаеться и все😒
источник

DM

Dmitriy M in Мобильное тестирование с Appium
Vika_JuniorQA
Dmitriy Можете помочь?
Логика теста на проверку лайаута может быть следующей:
1. Вначале теста задаешь булево значение для переменной isTakeNewScreenshot:
true - если хочешь сгенерировать эталонный (expected) скриншот (например при первом запуске или после изменений);
false - если эталон уже существует и нужно проверить текущий скриншот (actual) c эталонным;
2. Выполняешь тест до нужного места в твоем приложении, в котором нужно прверить лайаут и делаешь скриншот:
Если isTakeNewScreenshot = true - > сохраняешь скриншот как эталонный, иначе - сравниваешь текущий скриншот с ожидаемым и получаешь разницу впикселях
3. Ассертом в тесте проверяешь что разница в пикселях в пределах нормы или отсутсвует
источник

RA

Roza Abdullina in Мобильное тестирование с Appium
SAR
На чём тесты пишешь?
Java/kotlin
источник

AC

Alice Carroll in Мобильное тестирование с Appium
Roza Abdullina
Java/kotlin
источник

RS

Roman Speranskii in Мобильное тестирование с Appium
Roza Abdullina
Java/kotlin
У меня в GitHub есть примеры как писать на Kotlin + Appium, если ты хочешь типа двойные аннотации(спойлер - это не возможно, но ни выход)
https://github.com/romsper/qa-automation-base
источник

AC

Alice Carroll in Мобильное тестирование с Appium
Такие то норм работают

@AndroidFindBy(xpath = "//android.widget.TextView[@text='Skip PIN setup']")
@iOSXCUITFindBy(iOSNsPredicate = "type == 'XCUIElementTypeButton' and label == 'Skip'")
var skipButton: MobileElement? = null
источник
2020 April 26

RS

Roman Speranskii in Мобильное тестирование с Appium
Alice Carroll
Такие то норм работают

@AndroidFindBy(xpath = "//android.widget.TextView[@text='Skip PIN setup']")
@iOSXCUITFindBy(iOSNsPredicate = "type == 'XCUIElementTypeButton' and label == 'Skip'")
var skipButton: MobileElement? = null
Какая у тебя версия Kotlin?
источник

AC

Alice Carroll in Мобильное тестирование с Appium
Roman Speranskii
Какая у тебя версия Kotlin?
1.3.71
источник

RS

Roman Speranskii in Мобильное тестирование с Appium
Может в этом дело, ибо у меня двойные аннотации не работают
источник