我想控制Internet Explorer的ActiveX启动的对话框。
app = Application(backend="uia").connect(title = "감염병웹통계시스템 - Internet Explorer")
tb = app.window(class_name = "IEFrame").window(class_name = "AfxOleControl90su").window(class_name = "XTPToolBar")
tb.파일저장.click()
使用此代码,我可以打开对话框。但我无法处理它。 我发现Internet Explorer正在使用2个进程。
原始Internet Explorer低于64位,对话框位于32位Internet Explorer下。 所以我决定创建新的Application并连接到32位进程。
app2 = Application(backend="uia").connect(path=r"C:\Program Files (x86)\Internet Explorer\iexplore.exe", title = "감염병웹통계시스템 - Internet Explorer")
dialog = app2.window_(best_match = "Dialog")
dialog.print_control_identifiers()
但是没有print_control_identifiers的输出。什么都没发生。 当我取消对话框时,终端显示此错误消息。
(oh-crawler) c:\work\oh-crawler>python crawler2.py
Traceback (most recent call last):
File "C:\Anaconda3\envs\oh-crawler\lib\site-packages\pywinauto\application.py", line 243, in __resolve_control
criteria)
File "C:\Anaconda3\envs\oh-crawler\lib\site-packages\pywinauto\timings.py", line 424, in wait_until_passes
raise err
pywinauto.timings.TimeoutError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "crawler2.py", line 18, in <module>
dialog.print_control_identifiers()
File "C:\Anaconda3\envs\oh-crawler\lib\site-packages\pywinauto\application.py", line 573, in print_control_identifiers
this_ctrl = self.__resolve_control(self.criteria)[-1]
File "C:\Anaconda3\envs\oh-crawler\lib\site-packages\pywinauto\application.py", line 246, in __resolve_control
raise e.original_exception
File "C:\Anaconda3\envs\oh-crawler\lib\site-packages\pywinauto\timings.py", line 402, in wait_until_passes
func_val = func(*args)
File "C:\Anaconda3\envs\oh-crawler\lib\site-packages\pywinauto\application.py", line 188, in __get_ctrl
dialog = self.backend.generic_wrapper_class(findwindows.find_element(**criteria[0]))
File "C:\Anaconda3\envs\oh-crawler\lib\site-packages\pywinauto\findwindows.py", line 87, in find_element
raise ElementNotFoundError(kwargs)
pywinauto.findwindows.ElementNotFoundError: {'best_match': 'Dialog', 'backend': 'uia', 'process': 5244}
我认为有两种可能性。首先,我错误地连接到该过程。第二,我错误地附上了一个对话窗口。
以下是我从不同类型的间谍工具中获得的信息。 enter image description here
如何控制此对话框?
=======================================
2017年7月5日 我将inpect.exe的模式更改为UI自动化并再次捕获。
저means表示&#34;保存&#34; 这是ActiveX程序文件夹。
可以自定义控件吗?因为comtype限制,所以无法处理此控件吗?