pywinauto打开Windows应用
通过pywinauto打开千牛
class QianNiu():def __init__(self,taskid,proxy):self.taskid=taskidself.screenCount=1self.app = Application(backend="uia")def screen(self):pic_name=os.path.join(picture_path, self.taskid+'_'+str(self.screenCount)+'.jpg')im = pyautogui.screenshot()im.save(pic_name)self.screenCount+=1return pic_namedef login(self,user,password):try:#输入账号# self.app.top_window()self.app.start('C:\Program Files (x86)\AliWorkbench\AliWorkbench.exe')self.app.千牛登录.wait('visible', timeout=10, retry_interval=1)dlg=self.app.connect(title='千牛登录').window(title='千牛登录')# dlg.print_control_identifiers()account_window=dlg.child_window(title="AccountContainer", control_type="Window").rectangle()qianniu_mouse_move(5, account_window)pyautogui.click()pyautogui.hotkey('Ctrl', 'a')pyautogui.press('delete')pyperclip.copy(user)# pyautogui.typewrite(user,0.1)pyautogui.hotkey('Ctrl', 'v')# pyautogui.press('enter')#输入密码# passwd_window=dlg.child_window(title="PasswordContainer", control_type="Window").rectangle()# qianniu_mouse_move(5, passwd_window)# pyautogui.click()pyautogui.press('tab')pyautogui.typewrite(password, 0.1)# dlg.print_control_identifiers()#点击登录longin_button=dlg.child_window(title="登 录", control_type="Button").rectangle()qianniu_mouse_move(5, longin_button)pyautogui.click()except Exception:pic=self.screen()logger.error('%s用户名密码登录时异常,截图文件:%s,异常信息:%s',self.taskid,pic,traceback.format_exc())traceback.print_exc()return {'status':0,'msg':'登录异常','pic':pic}try:# dlg.child_window(title="商品", control_type="Button").wait('visible',timeout=10,retry_interval=0.1)self.app.window(title='千牛登录').wait_not('visible',timeout=5,retry_interval=0.1)time.sleep(5)logger.info('%s登录成功', self.taskid)return {'status':1}except Exception:pic = self.screen()logger.error('%s校验是否登录成功失败,截图文件:%s', self.taskid, pic)return {'status': 0, 'msg': '登录校验失败', 'pic': pic}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
