python中安裝pywinauto成功,執行時報如下錯誤的解決辦法


#! /usr/bin/env python
# coding=gbk


import time
from pywinauto import application
from pywinauto import Application

# app = Application(backend='uia').start("notepad.exe")
app = application.Application.start(r"F:\ruanjian\ruanjian\notePa++\Notepad++\notepad++.exe")
#app = Application(backend='uia').start(r"F:\ruanjian\ruanjian\notePa++\Notepad++\notepad++.exe")
app.Notepad.MenuSelect('幫助->關於記事本'.decode('gb2312'))
time.sleep(6)

# 這里有兩種方法可以進行定位“關於記事本”的對話框
# top_dlg = app.top_window_() 不推薦這種方式,因為可能得到的並不是你想要的
about_dlg = app.window_(title_re=u"關於", class_name="#32770") # 這里可以進行正則匹配title
# about_dlg.print_control_identifiers()
app.window_(title_re=u'關於“記事本”').window_(title_re=u'確定').Click()
app.Notepad.MenuSelect('幫助->關於記事本'.decode('gb2312'))
time.sleep(.5) # 停0.5s 否則你都看不出來它是否彈出來了!
ABOUT = u'關於“記事本”'
OK = u'確定'
# about_dlg[OK].Click()
# app[ABOUT][OK].Click()
app[u'關於“記事本”'][u'確定'].Click()

app.Notepad.TypeKeys(u"楊彥星")
dig = app.Notepad.MenuSelect("編輯(E)->替換(R)".decode('gb2312'))
Replace = u'替換'
Cancle = u'取消'
time.sleep(.5)
app[Replace][Cancle].Click()
dialogs = app.windows_()
注:代碼為網上copy的代碼,僅限與學習

 

 將app = application.Application.start(r"F:\ruanjian\ruanjian\notePa++\Notepad++\notepad++.exe")換成app = Application(backend='uia').start(r"F:\ruanjian\ruanjian\notePa++\Notepad++\notepad++.exe")

原因:使用的默認的可訪問性技術win32,但是notepad應該用uia

二、UnicodeDecodeError: 'gb2312' codec can't decode byte 0xae in position 2: illegal multibyte sequence該錯誤的解決辦法

將app.Notepad.MenuSelect('幫助->關於記事本'.decode('gb2312'))換成app.Notepad.MenuSelect('幫助->關於記事本'.encode('UTF-8').decode('UTF-8'))

三、    app.Notepad.MenuSelect('幫助->關於記事本'.encode('UTF-8').decode('UTF-8'))
  File "D:\ruanjian\python34\lib\site-packages\pywinauto\application.py", line 182, in __call__
    format(self.criteria[-1]['best_match']))
AttributeError: Neither GUI element (wrapper) nor wrapper method 'MenuSelect' were found (typo?)報如下錯誤解決辦法:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM