Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pywinauto中的打印控制标识符()错误_Python_Pywinauto - Fatal编程技术网

Python pywinauto中的打印控制标识符()错误

Python pywinauto中的打印控制标识符()错误,python,pywinauto,Python,Pywinauto,我正在WIN10中使用pyautowin,我想打开一个安全的应用程序来生成密码。但在脚本中找到应用程序窗口后,print_control_identifiers()函数会弹出错误,我不确定哪里出错了。错误窗口?应用程序中没有控件?请查看以下错误 代码如下: from pywinauto.application import Application app=Application() app.start('C:\Program Files (x86)\RSA SecurID Software To

我正在WIN10中使用pyautowin,我想打开一个安全的应用程序来生成密码。但在脚本中找到应用程序窗口后,print_control_identifiers()函数会弹出错误,我不确定哪里出错了。错误窗口?应用程序中没有控件?请查看以下错误

代码如下:

from pywinauto.application import Application
app=Application()
app.start('C:\Program Files (x86)\RSA SecurID Software Token\SecurID.exe')
RSA=app.window_(title='000131843108 - RSA SecurID Token')
print RSA
print RSA.print_control_identifiers()
2016-12-30 11:54:01,525 INFO: Imported existing <module 'comtypes.gen' from         'C:\Python27\lib\site-packages\comtypes\gen\__init__.pyc'>
2016-12-30 11:54:01,526 INFO: Using writeable comtypes cache directory: 'C:\Python27\lib\site-packages\comtypes\gen'  
<pywinauto.application.WindowSpecification object at 0x039EA670>
Traceback (most recent call last):
  File "C:/New folder/ConnectVPN.py", line 7, in <module>
    print RSA.print_control_identifiers()
  File "C:\Python27\lib\site-packages\pywinauto\application.py", line 569, in print_control_identifiers
    this_ctrl = self.__resolve_control(self.criteria)[-1]
  File "C:\Python27\lib\site-packages\pywinauto\application.py", line 239, in __resolve_control
    raise e.original_exception
pywinauto.findwindows.ElementNotFoundError: {'process': 4064, 'backend': u'win32', 'title': '000131843108 - RSA SecurID Token'}
错误如下:

from pywinauto.application import Application
app=Application()
app.start('C:\Program Files (x86)\RSA SecurID Software Token\SecurID.exe')
RSA=app.window_(title='000131843108 - RSA SecurID Token')
print RSA
print RSA.print_control_identifiers()
2016-12-30 11:54:01,525 INFO: Imported existing <module 'comtypes.gen' from         'C:\Python27\lib\site-packages\comtypes\gen\__init__.pyc'>
2016-12-30 11:54:01,526 INFO: Using writeable comtypes cache directory: 'C:\Python27\lib\site-packages\comtypes\gen'  
<pywinauto.application.WindowSpecification object at 0x039EA670>
Traceback (most recent call last):
  File "C:/New folder/ConnectVPN.py", line 7, in <module>
    print RSA.print_control_identifiers()
  File "C:\Python27\lib\site-packages\pywinauto\application.py", line 569, in print_control_identifiers
    this_ctrl = self.__resolve_control(self.criteria)[-1]
  File "C:\Python27\lib\site-packages\pywinauto\application.py", line 239, in __resolve_control
    raise e.original_exception
pywinauto.findwindows.ElementNotFoundError: {'process': 4064, 'backend': u'win32', 'title': '000131843108 - RSA SecurID Token'}
2016-12-30 11:54:01525信息:已导入现有
2016-12-30 11:54:01526信息:使用可写comtypes缓存目录:“C:\Python27\lib\site packages\comtypes\gen”
回溯(最近一次呼叫最后一次):
文件“C:/New folder/ConnectVPN.py”,第7行,在
打印RSA.print_控件_标识符()
文件“C:\Python27\lib\site packages\pywinauto\application.py”,第569行,在打印控制标识符中
此[u ctrl=self.\u解析[u控制(self.criteria)[-1]
文件“C:\Python27\lib\site packages\pywinauto\application.py”,第239行,在\uuuu resolve\u控件中
引发e.U异常
pywinauto.findwindows.ElementNotFoundError:{'process':4064',backend':u'win32','title':'000131843108-RSA SecurID令牌'}
我的应用程序类似于:


你的应用程序启动缓慢吗?如果花费的时间超过5秒,则主窗口可能还不存在,并引发异常。只需使用RSA.wait('ready',timeout=10)确保在打印控制标识符()之前存在该窗口。

我什么都不做,但它现在可以工作了。。。它返回控制标识符:QWidget-“000131843108-RSA SecurID令牌”(L863,T117,R1120,B303)[u'000131843108-RSA SecurID令牌”,u'QWidget',u'000131843108-RSA SecurID令牌QWidget']子窗口(title=“000131843108-RSA SecurID令牌”,class\u name=“QWidget”)None是否意味着我无法在此应用程序中使用任何控件?当我尝试使用记事本app.Properties.print_control_identifiers()时,我遇到了这种情况。然后此方法适用于app.window(另一个应用的)。当您在错误的组件中搜索时,是否会发生这种情况?顺便说一句,当我尝试在应用程序中创建一个“无限”循环时,它给出了“无限”循环之类的结果。我想,这个库应该有一个更严格的访问权限——似乎每当你试图获取它时,它就会创建一个对象。嗯,这是一个有趣的例子。似乎我们需要重写
应用程序的
方法。目前,
\uu getitem\uu
方法在每次迭代中无限地创建窗口规范。谢谢你的报道!固定在主分支。现在它引发了
NotImplementedError
并建议
app.windows()
使用。