Предполагается, что переменные среды adb (Android) настроены и установлен Python.
1. Установите сервер Appium.
Скачать адрес : http://appium.io/
2. Установите клиент Appium и Selenium.
Введите pip install selenium в cmd
pip install Appium-Python-Client
Если возникают проблемы с повторной попыткой, используйте команду с источником pip, например:
pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install Appium-Python-Client -i https://pypi.mirrors.ustc.edu.cn/simple/
3. Скрипт, Код должен включать поддержку appium настройки сервера, Вы можете добавлять/удалять элементы настройки в соответствии с фактическими потребностями. нравиться
# -*- coding: utf-8 -*-
from appium import webdriver
from time import sleep
CAPS = {
"deviceName": " MEIZU_E3",
"platformName": "Android",
"platformVersion": "7.1.1",
#'app' = 'E:/autotestingPro/app/UCliulanqi_701.apk' #Укажите файл .apk. Если установлены appPackage и appActivity, этот элемент будет игнорироваться.
"appPackage": " com.meizu.flyme.flymebbs",
"appActivity": ".ui.LoadingActivity",
#"noReset": True,
}
driver = webdriver.Remote('http://localhost:4723/wd/hub', CAPS)
sleep(3)
4. Открыть приложение server, Установите хост на 127.0.0.1, установите порт на 4723, Запустить сервер
5. Подключите телефон, установите приложение и запустите скрипт.。Полный тестовый сценарийнравиться Следующий пример(использоватьUnittest):
# coding: utf-8
import unittest
from appium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
desired_caps = {'platformName': 'Android',
'platformVersion': '5.1.1',
'deviceName': 'MEIZU_E3', #Имя устройства взято из adb devices
"appPackage": " com.meizu.flyme.flymebbs",
"appActivity": ".ui.LoadingActivity",}
appium_server = 'http://localhost:4723/wd/hub'
class LearnAppiumTest(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Remote(appium_server, desired_caps)
def tearDown(self):
self.driver.quit()
def test_01(self):
text_view = self.driver.find_element_by_id("text_view")
assert text_view.text == 'Hello World! Hello World!' # Тест должен провалиться
def test_02(self):
wait = WebDriverWait(self.driver, 6)
wait.until(EC.element_to_be_clickable((By.ID, 'button')))
button = self.driver.find_element_by_id("button")
button.click()
wait = WebDriverWait(self.driver, 6)
wait.until(EC.presence_of_element_located((By.ID, 'text_view')))
text_view = self.driver.find_element_by_id("text_view")
assert text_view.text == '3' # Тест должен пройти
if __name__ == '__main__':
unittest.main()