Pywinauto-有时不在特定的元素/窗口上执行操作



有时,当我想从可见窗口/菜单中单击某个元素或对其执行任何其他操作时,它找不到该元素,即使它是可见的,也不会执行所需的操作。

停止/启动应用程序暂时解决了这个问题,但这有点耗时。

你知道在发生这种情况的情况下还有其他解决办法或解决方案吗?

您可以尝试timings.WaitUntilPasses()函数来重复一些操作,直到超时或操作完成。

如果下次找不到控件,则可能有不同的根本原因。其中之一是控件布局发生了更改(可能有一点),best_match算法为控件指定了其他名称。每次都要视情况而定。请询问有关具体用例的更详细的问题。

几乎没有其他方法可以为控制搜索设置更精确的标准。类似的东西可能有助于避免重复:

# #32770 means a dialog like message box
app.Window_(title='Exact title', class_name='#32770').OK.Click()
# click first button with a "Set" caption (if there are few such buttons)
app.MainWindow.ChildWindow(title='Set', class_name='Button', found_index=0).Click()

可以在find_windows()函数文档中找到可能的搜索条件的完整列表。

我遇到过这样的情况。在我的情况下,应用程序太忙,无法响应UI操作。因此,对于那些特定的点,我使用了while循环,在循环中我执行操作并等待特定的窗口/控件状态。如果没有发生这种情况,那么代码将在循环中重复。当行动和预期行为实现时,循环中断。

最新更新