环境:
appium桌面版
python 3.10
点击startServer
---------------------------------------------------------------------------------------------------
kill_remote_control.py
# coding=utf-8
import os
import time
from appium import webdriver
from selenium.webdriver.common.by import By
import my_driver
def kill_remotely(i):
desired_caps = {
"platformName": "Android", # 设备类型
"platformVersion": "11",
"deviceName": my_driver.drivers[i],
"udid": my_driver.drivers[i],
"appPackage": "com.android.tv.settings",
"appActivity": "com.android.tv.settings.MainSettings",
"unicodeKeyboard": True,
"resetKeyboard": True,
"noReset": True,
"newCommandTimeout": 3600 # 设置超时时间,超过后会自动关闭 session
}
driver = webdriver.Remote("http://localhost:4723/wd/hub", desired_caps)
# 旧版本的调用
# driver.find_element_by_xpath("//android.widget.TextView[@text='Device Preferences']").click()
# driver.find_element_by_xpath("//android.widget.TextView[@text='Accessibility']").click()
# selenium 4.4 的调用
driver.find_element(By.XPATH, "//android.widget.TextView[@text='Device Preferences']").click()
width = driver.get_window_size()['width']
height = driver.get_window_size()['height']
print(width, height)
# adb 命令
adb_common_keyevent_20 = 'adb -s ' + my_driver.drivers[i] + ' shell input keyevent 20'
adb_common_install_ZTEJavaWirelesskey_apk = 'adb -s ' + my_driver.drivers[i] + r' install -r D:\zhw\apk\ZTEJavaWirelesskey.apk'
adb_common_keyevent_4 = 'adb -s ' + my_driver.drivers[i] + r' shell input keyevent 4'
adb_common_setprop_remotekey_2 = 'adb -s ' + my_driver.drivers[i] + ' shell "setprop sys.remotekey.forbid 2"'
# 下拉设置界面
for a in range(17):
os.system(adb_common_keyevent_20)
# 安装ZTEJavaWirelesskey.apk
os.system(adb_common_install_ZTEJavaWirelesskey_apk)
time.sleep(3)
# driver.swipe(960, 960, 960, 540, duration=500) 页面滑动,可能是手机的才适用,机顶盒没有作用
driver.find_element(By.XPATH, "//android.widget.TextView[@text='Accessibility']").click()
# 下拉设置界面
for a in range(10):
os.system(adb_common_keyevent_20)
driver.find_element(By.XPATH, "//android.widget.TextView[@text='ZTEJavaWirelesskey']").click()
driver.find_element(By.XPATH, "//android.widget.TextView[@text='Enable']").click()
driver.find_element(By.XPATH, "//android.widget.TextView[@text='OK']").click()
for a in range(10):
os.system(adb_common_keyevent_4)
os.system(adb_common_setprop_remotekey_2)
print('--------运行完成----------', my_driver.drivers[i])
my_main.py
import os
import threading
import kill_remote_control
import my_driver
if __name__ == '__main__':
adb_devices = os.popen("adb devices")
# splitlines \n换行符切割字符串
adb_devices_list = adb_devices.read().split()
i = 4
while i <= len(adb_devices_list):
j = 1
my_driver.drivers[j] = adb_devices_list[i]
i += 2
j += 1
for i in range(len(my_driver.drivers)):
t = threading.Thread(target=kill_remote_control.kill_remotely, args=(i,))
t.start()