| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- from time import sleep
- from pymobiledevice3.lockdown import create_using_usbmux
- from pymobiledevice3.services.dvt.instruments.process_control import ProcessControl
- from pymobiledevice3.services.installation_proxy import InstallationProxyService
- from pymobiledevice3.services.dvt.dvt_secure_socket_proxy import DvtSecureSocketProxyService
- import wda
- DD_BUNDLE_ID = 'com.laiwang.DingTalk' # 钉钉包名
- WDA_BUNDLE_ID = 'com.caner.test.xctrunner' #个人包名
- UDID = '00008030-000415D614E0402E' # pymobiledevice3 usbmux list 查看手机id
- # 启动app
- def launchApp(lockdown,installer,BUNDLE_ID,Name):
- if(BUNDLE_ID and lockdown and installer):
- Apps = [app for app in installer.get_apps() if Name in app]
- if len(Apps):
- if Apps[0] == BUNDLE_ID:
- with DvtSecureSocketProxyService(lockdown) as dvt:
- process_control = ProcessControl(dvt)
- pid = process_control.launch(BUNDLE_ID)
- print("启动app",pid,BUNDLE_ID)
- sleep(3)
- return True
- else:
- return False
- else:
- return False
- else:
- return False
- def main():
- try:
- # 连接手机
- lockdown = create_using_usbmux()
- print("是否已连接手机",lockdown.developer_mode_status)
- # 获取已安装的app
- with InstallationProxyService(lockdown) as installer:
- # 启动WDA
- wda_start = launchApp(lockdown,installer,WDA_BUNDLE_ID,'xctrunner')
- if(wda_start):
- print('已启动wda')
- # 连接WDA客户端
- wdaClient = wda.USBClient(UDID)
- if(wdaClient):
- # 启动钉钉
- dd_start = launchApp(lockdown,installer,DD_BUNDLE_ID,'DingTalk')
- if(dd_start):
- gzt = wdaClient(name="工作台, ",label="工作台, ")
- if(gzt.exists):
- print('找到工作台按钮')
- gzt.click()
-
-
- else:
- print('未找到工作台,需要重启app')
- # # 点击工作台
- # wdaClient.tap(207,837)
- # sleep(3)
- # # 点击考勤打卡
- # wdaClient.tap(41,420)
- # sleep(3)
- # # 打卡
- # # wdaClient.tap(206,555)
- # a = wdaClient.xpath
- # print('啥意思',a)
- else:
- print("没找到钉钉安装包")
- else:
- print("连失败")
- else:
- print("没找到WDA安装包")
- except ConnectionError as e:
- print("连接失败",e)
- if __name__ == '__main__':
- main()
|