本篇文章给大家谈谈手机运行python控制手机app,以及python模拟手机屏幕点击,希望对各位有所帮助,不要忘了收藏本站喔。

Python+Appium同时控制多个Android模拟器

环境

windows 10
Appium-windows-1.18.0-2
nox_setup_v7.0.0.5_full
android-sdk_r24.4.1-windows

夜神模拟器

在这里插入图片描述

adb连接夜神模拟器

adb  # 查看是否安装adb

adb devices  # 查看设备信息

adb connect 127.0.0.1:62001  # 夜神模拟器第一个模拟器端口是62001,第二个模拟器端口号是62025,第三个是62025+1,依此类推。

在这里插入图片描述

Appium

方式一:开一个Appium窗口监听三个夜神模拟器

General Server Port 4723
Android Bootstrap Port 4724

在这里插入图片描述
在这里插入图片描述

方式二:开三个Appium窗口分别监听三个夜神模拟器

设备1

General Server Port 4723
Android Bootstrap Port 4724

设备2

General Server Port 4725
Android Bootstrap Port 4726

设备3

General Server Port 4727
Android Bootstrap Port 4728

每次配置后都点击“Save as preset…”

在这里插入图片描述
在这里插入图片描述
页面配置了3个端口监听,所以打开3个appium页面

在这里插入图片描述
在这里插入图片描述

Python代码

# coding=utf-8

'''
Created on 2020/09/29
@author:Susin
'''

from appium import webdriver
import time
import threading

desired_caps1 = {
    'platformName': 'Android',  # 平台 安卓
    'deviceName': '127.0.0.1:62001',  # 设备名,使用安卓模拟器时设备名任意
    'platformVersion': '7',  # 模拟器版本
    'automationName': 'UIAutomator2',
    'androidInstallTimeout': 300000,
    'adbExecTimeout': 10000,
    'udid': '127.0.0.1:62001',  # adb devices 显示的id
    'appPackage': 'com.taobao.taobao',
    'appActivity': 'com.taobao.tao.welcome.Welcome',
}

desired_caps2 = {
    'platformName': 'Android',  # 平台 安卓
    'deviceName': '127.0.0.1:62025',  # 设备名,使用安卓模拟器时设备名任意
    'platformVersion': '7',  # 模拟器版本
    'automationName': 'UIAutomator2',
    'androidInstallTimeout': 300000,
    'adbExecTimeout': 10000,
    'udid': '127.0.0.1:62025',  # adb devices 显示的id
    'appPackage': 'com.taobao.taobao',
    'appActivity': 'com.taobao.tao.welcome.Welcome',
}

desired_caps3 = {
    'platformName': 'Android',  # 平台 安卓
    'deviceName': '127.0.0.1:62026',  # 设备名,使用安卓模拟器时设备名任意
    'platformVersion': '7',  # 模拟器版本
    'automationName': 'UIAutomator2',
    'androidInstallTimeout': 300000,
    'adbExecTimeout': 10000,
    'udid': '127.0.0.1:62026',  # adb devices 显示的id
    'appPackage': 'com.taobao.taobao',
    'appActivity': 'com.taobao.tao.welcome.Welcome',
}


def task1():
    driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps1)
    ##休眠20s等待页面加载完成
    time.sleep(20)
    print(driver.contexts)
    print("127.0.0.1:62001执行完成")
    driver.quit()


def task2():
    driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps2)
    ##休眠20s等待页面加载完成
    time.sleep(20)
    print(driver.contexts)
    print("127.0.0.1:62025执行完成")
    driver.quit()


def task3():
    driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps3)
    ##休眠20s等待页面加载完成
    time.sleep(20)
    print(driver.contexts)
    print("127.0.0.1:62026执行完成")
    driver.quit()


threads = []
t1 = threading.Thread(target=task1)
threads.append(t1)

t2 = threading.Thread(target=task2)
threads.append(t2)

t3 = threading.Thread(target=task3)
threads.append(t3)

if __name__ == '__main__':
    # for t in threads:
    # t.start()

    threading.Thread(target=task1).start()
    threading.Thread(target=task2).start()
    threading.Thread(target=task3).start()

在这里插入图片描述
参考文章:
Appium-控制多台安卓设备执行的入门级实现

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐