Совет: Здесь вы можете добавить оглавление всех статей серии. Оглавление необходимо добавлять вручную.
Например: Глава 1 Python Введение в машинное обучение: использование панд
Например: с постоянным развитием искусственного интеллекта технология машинного обучения становится все более важной. Многие люди начали изучать машинное обучение.
Совет: Ниже приведен текст этой статьи. Следующие случаи приведены для справки.
pip install Appium-Python-Client -i https://pypi.tuna.tsinghua.edu.cn/simple
Ссылка: https://pan.baidu.com/s/19C9fGmoXne8DgfXhrTB2TQ
Код извлечения: кгвб
https://www.byhy.net/tut/auto/appium/01/
Найдите инструменты/bin/uiautomatorviewer.bat в каталоге SDK и дважды щелкните, чтобы запустить;
Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException: Remote object doesn't exist!
Обычно он конфликтует с Appium Desktop Appium. Просто закройте Appium Desktop Appium и снова получите интерфейс приложения;
Запустите командную панель: adb reconnect После запуска снова нажмите «Подключиться».
resource-id=tv.danmaku.bili:id/search_src_text,Позиционирование идентификатора элемента можно выполнить через search_src_text.,Вы также можете написать полностью(tv.danmaku.bili:id/search_src_text
)позиция;
from selenium.webdriver.common.by import By
driver.find_element_by_id('search_src_text')
driver.find_element(By.ID, 'search_src_text')
границы = [175,88][887,171], указывающие ширину и высоту верхнего левого угла элемента, а также позиции граничных пикселей ширины и высоты нижнего правого угла элемента;
text=appium, содержимое внутри компонента;
Элементы можно позиционировать на основе текста.
from appium.webdriver.common.appiumby import AppiumBy
driver.find_element по идентификатору доступности('поискзапрос')
driver.find_element(AppiumBy.ACCESSIBILITY_ID, 'поискзапрос')
Конкретная операция описана ниже. Appium Desktop Appium Проверять;
ссылка Вот официальная документация Google Android: https://developer.android.google.cn/training/testing/ui-automator
UiSelector часто используемые методы выбора элементов
from appium.webdriver.common.appiumby import AppiumBy
code = 'new className("android.widget.TextView").resourceId("tv.danmaku.bile:id/search_src_text")'
result = driver.find_element(AppiumBy.ANDROID_UIAUTOMATOR, code)
childSelectorCode = 'new UiSelector().resourceId("tv.danmaku.bili:id/search_src_text").childSelector(new UiSelector().className("android.widget.TextView"))'
result = driver.find_elements_by_uiautomator(childSelectorCode);
Обратите внимание на приведенную выше переменную кода, которая содержит код Java. В коде Java можно использовать только двойные кавычки, поэтому будьте внимательны при написании.
1. Откройте Appium, нажмите «Запустить сервер», запустите программу и нажмите лупу в правом верхнем углу.
2. Добавьте конфигурацию
# Конфигурации, необходимые для кода Python
desired_caps = {
'platformName': 'Android', # провереносотовый телефон Android
'platformVersion': '10', # сотовый Android-версия телефона
'deviceName': 'xxx', # Имя устройства, Android сотовый телефон можно заполнить по вашему желанию
'appPackage': 'tv.danmaku.bili', # Запустить приложение Имя пакета
'appActivity': '.MainActivityV2', # Название начала действия
'unicodeKeyboard': True, # Используйте встроенный метод ввода и заполняйте True при вводе китайского языка.
'resetKeyboard': True, # После выполнения программы восстановите исходный метод ввода
'noReset': True, # Не перезагружайте приложение
'newCommandTimeout': 6000, # Максимальный таймаут запроса
'automationName' : 'UiAutomator2'
# 'app': r'd:\apk\bili.apk',
}
// Appium Desktop Appium Записать конфигурацию элемента интерфейса приложения
{
"platformName": "Android",
"platformVersion": "10",
"deviceName": "xxx",
"appPackage": "tv.danmaku.bili",
"appActivity": ".MainActivityV2",
"unicodeKeyboard": true,
"resetKeyboard": true,
"noReset": true,
"newCommandTimeout": 6000,
"automationName": "UiAutomator2"
}
1. Позиционирование по классу нужно прописывать полностью: //android.widget.TextView
2. Найдите компонент по идентификатору ресурса: //*[@resource-id="tv.danmaku.bili:id/action_search"]
3、в соответствии сэлемент Узлы относительныпозиция:позицияПопулярный
элемент;
Синтаксис позиционирования: //*[@resource-id=’tv.danmaku.bili:id/tabs’]//android.view.ViewGroup[3]
from appium.webdriver.common.appiumby import AppiumBy
driver.find_element(AppiumBy.XPATH, "//*[@resource-id='tv.danmaku.bili:id/tabs']//android.view.ViewGroup[3]")
driver.find_element_by_xpath("//*[@resource-id='tv.danmaku.bili:id/tabs']//android.view.ViewGroup[3]")
Следующее объяснение относится не только к методу позиционирования xpath, но также включает все методы с элементом слова.
find_element_by_xpath, без s означает поиск первого совпавшего элемента, обычно используемого для поиска;
find_elements_by_xpath, где s означает позиционирование всех совпадений, обычно используется для получения значения данных элемента;
from appium import webdriver
from selenium.webdriver.common.by import By
from appium.webdriver.extensions.android.nativekey import AndroidKey
"""
Получить приложение информация о деятельности
Откройте целевое приложение для сотового текущий активный экран телефона, Открыть cmd Введите следующую команду получатьсотовый телефон Информация о запущенном приложении
adb shell dumpsys activity recents | find "intent={"
Первая строка сотовая телефон Текущая информация о приложении, извлечение информации cmp, .MainActivityV2
cmp=tv.danmaku.bili/.MainActivityV2
"""
desired_caps = {
'platformName': 'Android', # провереносотовый телефон Android
'platformVersion': '10', # сотовый Android-версия телефона
'deviceName': 'xxx', # Имя устройства, Android сотовый телефон можно заполнить по вашему желанию
'appPackage': 'tv.danmaku.bili', # Запустить приложение Имя пакета
'appActivity': '.MainActivityV2', # Название начала действия
'unicodeKeyboard': True, # Используйте встроенный метод ввода и заполняйте True при вводе китайского языка.
'resetKeyboard': True, # После выполнения программы восстановите исходный метод ввода
'noReset': True, # Не перезагружайте приложение
'newCommandTimeout': 6000,
'automationName': 'UiAutomator2'
# 'app': r'd:\apk\bili.apk',
}
# Подключить Аппиум Сервер, инициализация среды автоматизации
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
# Установить время ожидания по умолчанию
driver.implicitly_wait(5)
# Если есть интерфейс «Защита молодежи», нажмите «Я понял».
iknow = driver.find_elements(By.ID, "text3")
if iknow:
iknow.click()
# Найдите поле позиции поиска в соответствии с идентификатором и нажмите
driver.find_element(By.ID, 'expand_search').click()
# Найдите поле ввода поиска по идентификатору и нажмите
sbox = driver.find_element(By.ID, 'search_src_text')
sbox.send_keys('Белая луна и черное перо')
# Введите клавишу Enter для подтверждения поиска
driver.press_keycode(AndroidKey.ENTER)
# Выбрать (нацелить) все заголовки видео
eles = driver.find_elements(By.ID, 'title')
for ele in eles:
# Распечатать заголовок
print(ele.text)
input('**** Press to quit..')
driver.quit()