【问题标题】:How to wait for an application to open using pywinauto?如何使用 pywinauto 等待应用程序打开?
【发布时间】:2020-01-21 19:30:03
【问题描述】:

我有一个使用 pywinauto 自动化的程序。 执行某些操作后,应用程序会创建一个临时 pdf 并在 chrome 浏览器中打开它。

app.dialog["OKButton"].click_input()

我的代码会等待 chrome 窗口出现,然后将 pdf(在 chrome 中)保存到所需位置。

但是,当数据足够大时,应用程序需要时间来生成 pdf 并且 chrome 尚未打开。

如何在连接到 chrome 应用程序窗口之前等待 chrome 出现。

time.sleep(action_interval)
app.dialog["OKButton"].click_input()
time.sleep(10)
# Chrome
app2 = Application().connect(title="Statement - Google Chrome")       
app2.WindowSpecification.wait('enabled')
time.sleep(10)
app2['Image Statement - Google Chrome'].type_keys("{VK_CONTROL down}"
                                        "S"
                                        "{VK_CONTROL up}", pause=2)

这会导致错误

ElementNotFoundError: {'title': 'Statement - Google Chrome', 'backend': 'win32', 'visible_only': False}

但是,如果出现chrome窗口,则不会遇到此错误。

【问题讨论】:

    标签: python-3.x automation pywinauto


    【解决方案1】:

    请阅读文档中的Waiting for Long Operations 章节。

    在你的情况下应该是这样的:

    # wait flexibly up to 20 seconds
    app2 = Application().connect(title="Statement - Google Chrome", timeout=20)
    

    【讨论】:

    • 感谢您的反馈,这很有帮助。
    猜你喜欢
    • 2016-07-14
    • 1970-01-01
    • 1970-01-01
    • 2022-07-09
    • 2021-01-29
    • 2022-09-24
    • 1970-01-01
    • 2017-01-10
    • 1970-01-01
    相关资源
    最近更新 更多