从基于C#的应用程序执行Pywinauto脚本速度很慢

2024-05-18 23:31:40 发布

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

更新于5月7日,历史信息在“************************”行下

@Jakub Sowa我无法在你的下方添加任何评论,我尝试了top_window and children(),它似乎对我不起作用。福克斯的例子 tp=cg.appConnect().top_window() tp.儿童(title=“finance”,control_type=“Button”).绘制大纲()

发生的错误类似于--AttributeError:“list”对象没有属性“draw\u outline”

那么你能给我一个具体的例子来说明它在你的案例中是如何工作的吗


我已经做了几个月的pywinauto自动化,但对于某些代码来说运行缓慢,例如:

我在以下代码中单击按钮进行确认:

self.dlg = cg.appConnect().window(title="Hygine_Platform", control_type="Window")

self.regdlg = self.dlg.child_window(title ="registry", auto_id ="FormRegBalance", control_type="Window") 

self.okbtn = self.regdlg.child_window(title="confirm",auto_id="btnOk",control_type="Button")

def clickConfSettle(self):

self.okbtn.click_input()

如果使用clickConfSettle(),至少需要五秒钟才能完成。有没有人有同样的问题,有没有解决办法?我已经检查了控件的结构,它非常简单,只有3个级别


Tags: 代码selftitletoptypebuttonwindowcg
2条回答

我想用迄今为止我所尝试过的回答。如果我使用var.children(attributes),仍然需要索引。因此,它与var.children(attributes)[]一起工作,运行速度比以前更快

我只使用了一两个星期的库,但我认为如果您尽快获得顶部窗口的窗口规范及其子窗口,比如self.app.top_window().children(),其中apppywinauto.Application(backend='uia', allow_magic_lookup=False).connect(handle=self.handle),那么您的应用程序应该运行得更快

它使dict查找远离您,但是,您仍然可以通过索引访问项或对它们进行迭代(在我的例子中,这比使用child_window方法要快得多)。我不确定点击部分,因为它可能需要更多的时间,但在大多数情况下,我的程序中的所有查找都在更改后的1s内进行

相关问题 更多 >

    热门问题