如何使用 pywinauto 等待应用程序打开?
How to wait for an application to open using pywinauto?
我有一个使用 pywinauto 自动化的程序。
执行某些操作后,应用程序创建一个临时 pdf 并在 chrome 浏览器中打开它。
app.dialog["OKButton"].click_input()
我的代码等待一段时间 chrome window 出现,然后将 pdf(在 chrome 中)保存到所需位置。
但是,当数据足够大时,应用程序需要时间来生成 pdf 并且 chrome 尚未打开。
如何在连接到 chrome 应用程序之前等待 chrome 出现 window。
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}
但是如果出现chromewindow,则不会遇到这个错误。
请阅读文档中的 Waiting for Long Operations 章节。
在你的情况下应该是这样的:
# wait flexibly up to 20 seconds
app2 = Application().connect(title="Statement - Google Chrome", timeout=20)
我有一个使用 pywinauto 自动化的程序。 执行某些操作后,应用程序创建一个临时 pdf 并在 chrome 浏览器中打开它。
app.dialog["OKButton"].click_input()
我的代码等待一段时间 chrome window 出现,然后将 pdf(在 chrome 中)保存到所需位置。
但是,当数据足够大时,应用程序需要时间来生成 pdf 并且 chrome 尚未打开。
如何在连接到 chrome 应用程序之前等待 chrome 出现 window。
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}
但是如果出现chromewindow,则不会遇到这个错误。
请阅读文档中的 Waiting for Long Operations 章节。
在你的情况下应该是这样的:
# wait flexibly up to 20 seconds
app2 = Application().connect(title="Statement - Google Chrome", timeout=20)