Pywinauto不响应

2024-04-23 14:59:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python和pywinauto的新成员,我需要在Chrome中使用pywinauto和Chrome_widgetWin_1启动一个演示文稿,在我运行了一个程序之后,Chrome启动了,但只显示了一个新的选项卡,presentation没有出现。
程序的第一部分称pdf为html演示文稿并添加到Chrome的路径, 第二部分是调用一些Chrome小部件开始演示,但显然它不起作用。
我不知道问题出在哪里,因为我到现在还没有在那里工作,而且在互联网上也没有任何帮助。
有谁有过这样的经历吗?感谢任何帮助,tnx:)

pdf = "\\CIT_presentation.pdf"         
htmlpres = "file:///...template_cit2.html#1"    
adobe = "C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe"    
chrome = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"    
import xml.etree.ElementTree as ET    
from suds.client import Client
class Presentation:    
    def start(self):    
        from pywinauto import application    
        app = application.Application()    
        app.start_(chrome)    
        pwa_app = pywinauto.application.Application()    
        while True:    
            try:    
                w_handle =     pywinauto.findwindows.find_windows(class_name='Chrome_WidgetWin_1')[0]    
                window = pwa_app.window_(handle=w_handle)    
                window.TypeKeys(htmlpres, with_spaces = True)    
                window.TypeKeys("~")    
                break    
            except:    
                pass

Tags: import程序apppdfapplicationhtmlchromewindow
3条回答

试图理解这个问题。。首先,让代码能够实际运行,方法是:

import pywinauto
import time
import sys

htmlpres = "zcuba.dk/2014" 

chrome = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"

class Presentation:
    def __init__(self):
        pass

    def start(self):     
        app = pywinauto.application.Application()    
        app.start_(chrome)    
        pwa_app = pywinauto.application.Application()    
        while True:    
            try:    
                w_handle = pywinauto.findwindows.find_windows(class_name='Chrome_WidgetWin_1')[0]
                window = pwa_app.window_(handle=w_handle)
                window.TypeKeys(htmlpres, with_spaces = True)      
                window.TypeKeys("~")   
                window.TypeKeys("{F11}") 
                break;
            except:
                e = sys.exc_info()[0]
                print e
                time.sleep(1)

p = Presentation()
p.start()

现在它在这里工作,我找不到任何错误。。。对不起

下一个调试版本的代码,它看起来不像你的原始版本,有很多输出可以帮助你找出你的问题!在

^{pr2}$

瓦西里-是的,现在它打印了一些错误

<type 'exceptions.TypeError'>    
File "C:/.../Program.py", line 23, in start    
    window = app.window_(handle=w_handle)  
File "C:\Python27\lib\site-packages\pywinauto\application.py", line 400, in window_   
    **kwargs)  
File "C:\Python27\lib\site-packages\pywinauto\application.py", line 290, in _wait_for_function_success    
    return func(*args, ** kwargs)
File "C:\Python27\lib\site-packages\pywinauto\findwindows.py", line 60, in find_window
    windows = find_windows(**kwargs)    
TypeError: find_windows() got an unexpected keyword argument 'handle'

可能您混合了两个应用程序对象:app和{}。app与已启动chrome.exe进程,pwa_app没有连接到任何进程,它只是SWAPY工具的一个“复制粘贴”。在

只需删除pwa_app = pywinauto.application.Application()行,并将所有pwa_app对象替换为app个对象。在

[编辑1]以防万一。。。您需要32位的python2.7。在

相关问题 更多 >