【问题标题】:pywinauto makes application unresponsivepywinauto 使应用程序无响应
【发布时间】:2022-07-09 13:48:04
【问题描述】:

当使用 pywinauto 自动化 Windows 应用程序时,在某些情况下应用程序变得无响应或崩溃,并且 pywinauto 无法再连接到它。我正在使用 \"uia\" 后端。

当数据表有很多行(可能超过 10 000 行)时,就会出现此问题。 7 行表格的表格控件标识符如下所示。 10 000 行已经导致超过 100 000 个元素。

这是我单击第一个数据单元格的代码:

window.child_window(control_type=\"Table\").child_window(title=\"Rivi 0\", control_type=\"Custom\").child_window(control_type=\"DataItem\", found_index=0).click_input()

但是,在弹出包含大量数据的表后,任何其他 pywinauto 命令也会失败。

任何提示如何继续使用 pywinauto 并防止应用程序变得无响应?

Control Identifiers:

Table - \'DataGridView\'    (L220, T288, R767, B555)
[\'Table\', \'DataGridView\', \'DataGridViewTable\']
child_window(title=\"DataGridView\", auto_id=\"GridView\", control_type=\"Table\")
   | 
   | ScrollBar - \'Vaakavierityspalkki\'    (L220, T538, R767, B555)
   | [\'ScrollBar\', \'Vaakavierityspalkki\', \'VaakavierityspalkkiScrollBar\']
   | child_window(title=\"Vaakavierityspalkki\", auto_id=\"1116562\", control_type=\"ScrollBar\")
   |    | 
   |    | Button - \'Column left\'    (L220, T538, R237, B555)
   |    | [\'Column leftButton\', \'Button\', \'Column left\', \'Button0\', \'Button1\']
   |    | child_window(title=\"Column left\", control_type=\"Button\")
   |    | 
   |    | Thumb - \'Position\'    (L237, T538, R502, B555)
   |    | [\'Position\', \'PositionThumb\', \'Thumb\']
   |    | child_window(title=\"Position\", control_type=\"Thumb\")
   |    | 
   |    | Button - \'Page right\'    (L502, T538, R750, B555)
   |    | [\'Button2\', \'Page rightButton\', \'Page right\']
   |    | child_window(title=\"Page right\", control_type=\"Button\")
   |    | 
   |    | Button - \'Column right\'    (L750, T538, R767, B555)
   |    | [\'Button3\', \'Column right\', \'Column rightButton\']
   |    | child_window(title=\"Column right\", control_type=\"Button\")
   | 
   | Custom - \'Ylin rivi\'    (L220, T288, R767, B312)
   | [\'Custom\', \'Ylin rivi\', \'Ylin riviCustom\', \'Custom0\', \'Custom1\']
   | child_window(title=\"Ylin rivi\", control_type=\"Custom\")
   |    | 
   |    | Header - \'Vasemman yläreunan otsikkosolu\'    (L220, T288, R244, B312)
   |    | [\'Header\', \'Vasemman yläreunan otsikkosolu\', \'Vasemman yläreunan otsikkosoluHeader\', \'Header0\', \'Header1\']
   |    | child_window(title=\"Vasemman yläreunan otsikkosolu\", control_type=\"Header\")
   |    | 
   |    | Header - \'Henk.nro\'    (L244, T288, R294, B312)
   |    | [\'Header2\', \'Henk.nroHeader\', \'Henk.nro\']
   |    | child_window(title=\"Henk.nro\", control_type=\"Header\")
   |    | 
   |    | Header - \'Käyttönimi\'    (L294, T288, R450, B312)
   |    | [\'KäyttönimiHeader\', \'Header3\', \'Käyttönimi\']
   |    | child_window(title=\"Käyttönimi\", control_type=\"Header\")
   |    | 
   |    | Header - \'Alkupäivä\'    (L450, T288, R530, B312)
   |    | [\'AlkupäiväHeader\', \'Alkupäivä\', \'Header4\']
   |    | child_window(title=\"Alkupäivä\", control_type=\"Header\")
   |    | 
   |    | Header - \'Loppupäivä\'    (L530, T288, R610, B312)
   |    | [\'LoppupäiväHeader\', \'Header5\', \'Loppupäivä\']
   |    | child_window(title=\"Loppupäivä\", control_type=\"Header\")
   |    | 
   |    | Header - \'Pidätys-% 1\'    (L610, T288, R660, B312)
   |    | [\'Pidätys-% 1\', \'Header6\', \'Pidätys-% 1Header\']
   |    | child_window(title=\"Pidätys-% 1\", control_type=\"Header\")
   |    | 
   |    | Header - \'Pidätys-% 2\'    (L660, T288, R710, B312)
   |    | [\'Pidätys-% 2Header\', \'Pidätys-% 2\', \'Header7\']
   |    | child_window(title=\"Pidätys-% 2\", control_type=\"Header\")
   |    | 
   |    | Header - \'Tuloraja 1\'    (L710, T288, R763, B312)
   |    | [\'Tuloraja 1\', \'Header8\', \'Tuloraja 1Header\']
   |    | child_window(title=\"Tuloraja 1\", control_type=\"Header\")
   |    | 
   |    | Header - \'Maksaja\'    (L763, T288, R931, B312)
   |    | [\'Maksaja\', \'Header9\', \'MaksajaHeader\']
   |    | child_window(title=\"Maksaja\", control_type=\"Header\")
   |    | 
   |    | Header - \'Ryhmä\'    (L0, T0, R0, B0)
   |    | [\'Ryhmä\', \'Header10\', \'RyhmäHeader\']
   |    | child_window(title=\"Ryhmä\", control_type=\"Header\")
   |    | 
   |    | Header - \'Muuttaja\'    (L0, T0, R0, B0)
   |    | [\'MuuttajaHeader\', \'Header11\', \'Muuttaja\']
   |    | child_window(title=\"Muuttaja\", control_type=\"Header\")
   |    | 
   |    | Header - \'Muutettu\'    (L0, T0, R0, B0)
   |    | [\'Header12\', \'MuutettuHeader\', \'Muutettu\']
   |    | child_window(title=\"Muutettu\", control_type=\"Header\")
   | 
   | Custom - \'Rivi 0\'    (L220, T312, R767, B334)
   | [\'Custom2\', \'Rivi 0Custom\', \'Rivi 0\', \'Rivi 00\', \'Rivi 01\']
   | child_window(title=\"Rivi 0\", control_type=\"Custom\")
   |    | 
   |    | Header - \'Rivi 0\'    (L220, T312, R244, B334)
   |    | [\'Rivi 02\', \'Header13\', \'Rivi 0Header\']
   |    | child_window(title=\"Rivi 0\", control_type=\"Header\")
   |    | 
   |    | DataItem - \'Henk.nro Rivi 0\'    (L244, T312, R294, B334)
   |    | [\'Henk.nro Rivi 0DataItem\', \'Henk.nro Rivi 0\', \'DataItem\', \'DataItem0\', \'DataItem1\']
   |    | child_window(title=\"Henk.nro Rivi 0\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Käyttönimi Rivi 0\'    (L294, T312, R450, B334)
   |    | [\'Käyttönimi Rivi 0\', \'Käyttönimi Rivi 0DataItem\', \'DataItem2\']
   |    | child_window(title=\"Käyttönimi Rivi 0\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Alkupäivä Rivi 0\'    (L450, T312, R530, B334)
   |    | [\'Alkupäivä Rivi 0DataItem\', \'Alkupäivä Rivi 0\', \'DataItem3\']
   |    | child_window(title=\"Alkupäivä Rivi 0\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Loppupäivä Rivi 0\'    (L530, T312, R610, B334)
   |    | [\'Loppupäivä Rivi 0\', \'Loppupäivä Rivi 0DataItem\', \'DataItem4\']
   |    | child_window(title=\"Loppupäivä Rivi 0\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Pidätys-% 1 Rivi 0\'    (L610, T312, R660, B334)
   |    | [\'Pidätys-% 1 Rivi 0DataItem\', \'Pidätys-% 1 Rivi 0\', \'DataItem5\']
   |    | child_window(title=\"Pidätys-% 1 Rivi 0\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Pidätys-% 2 Rivi 0\'    (L660, T312, R710, B334)
   |    | [\'Pidätys-% 2 Rivi 0DataItem\', \'Pidätys-% 2 Rivi 0\', \'DataItem6\']
   |    | child_window(title=\"Pidätys-% 2 Rivi 0\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Tuloraja 1 Rivi 0\'    (L710, T312, R763, B334)
   |    | [\'Tuloraja 1 Rivi 0\', \'Tuloraja 1 Rivi 0DataItem\', \'DataItem7\']
   |    | child_window(title=\"Tuloraja 1 Rivi 0\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Maksaja Rivi 0\'    (L763, T312, R931, B334)
   |    | [\'Maksaja Rivi 0DataItem\', \'Maksaja Rivi 0\', \'DataItem8\']
   |    | child_window(title=\"Maksaja Rivi 0\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Ryhmä Rivi 0\'    (L0, T0, R0, B0)
   |    | [\'Ryhmä Rivi 0\', \'Ryhmä Rivi 0DataItem\', \'DataItem9\']
   |    | child_window(title=\"Ryhmä Rivi 0\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Muuttaja Rivi 0\'    (L0, T0, R0, B0)
   |    | [\'Muuttaja Rivi 0DataItem\', \'Muuttaja Rivi 0\', \'DataItem10\']
   |    | child_window(title=\"Muuttaja Rivi 0\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Muutettu Rivi 0\'    (L0, T0, R0, B0)
   |    | [\'Muutettu Rivi 0DataItem\', \'DataItem11\', \'Muutettu Rivi 0\']
   |    | child_window(title=\"Muutettu Rivi 0\", control_type=\"DataItem\")
   | 
   | Custom - \'Rivi 1\'    (L220, T334, R767, B356)
   | [\'Rivi 1\', \'Custom3\', \'Rivi 1Custom\', \'Rivi 10\', \'Rivi 11\']
   | child_window(title=\"Rivi 1\", control_type=\"Custom\")
   |    | 
   |    | Header - \'Rivi 1\'    (L220, T334, R244, B356)
   |    | [\'Rivi 12\', \'Header14\', \'Rivi 1Header\']
   |    | child_window(title=\"Rivi 1\", control_type=\"Header\")
   |    | 
   |    | DataItem - \'Henk.nro Rivi 1\'    (L244, T334, R294, B356)
   |    | [\'Henk.nro Rivi 1\', \'Henk.nro Rivi 1DataItem\', \'DataItem12\']
   |    | child_window(title=\"Henk.nro Rivi 1\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Käyttönimi Rivi 1\'    (L294, T334, R450, B356)
   |    | [\'Käyttönimi Rivi 1DataItem\', \'Käyttönimi Rivi 1\', \'DataItem13\']
   |    | child_window(title=\"Käyttönimi Rivi 1\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Alkupäivä Rivi 1\'    (L450, T334, R530, B356)
   |    | [\'Alkupäivä Rivi 1\', \'Alkupäivä Rivi 1DataItem\', \'DataItem14\']
   |    | child_window(title=\"Alkupäivä Rivi 1\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Loppupäivä Rivi 1\'    (L530, T334, R610, B356)
   |    | [\'Loppupäivä Rivi 1\', \'Loppupäivä Rivi 1DataItem\', \'DataItem15\']
   |    | child_window(title=\"Loppupäivä Rivi 1\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Pidätys-% 1 Rivi 1\'    (L610, T334, R660, B356)
   |    | [\'Pidätys-% 1 Rivi 1\', \'Pidätys-% 1 Rivi 1DataItem\', \'DataItem16\']
   |    | child_window(title=\"Pidätys-% 1 Rivi 1\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Pidätys-% 2 Rivi 1\'    (L660, T334, R710, B356)
   |    | [\'Pidätys-% 2 Rivi 1\', \'Pidätys-% 2 Rivi 1DataItem\', \'DataItem17\']
   |    | child_window(title=\"Pidätys-% 2 Rivi 1\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Tuloraja 1 Rivi 1\'    (L710, T334, R763, B356)
   |    | [\'Tuloraja 1 Rivi 1\', \'Tuloraja 1 Rivi 1DataItem\', \'DataItem18\']
   |    | child_window(title=\"Tuloraja 1 Rivi 1\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Maksaja Rivi 1\'    (L763, T334, R931, B356)
   |    | [\'Maksaja Rivi 1DataItem\', \'Maksaja Rivi 1\', \'DataItem19\']
   |    | child_window(title=\"Maksaja Rivi 1\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Ryhmä Rivi 1\'    (L0, T0, R0, B0)
   |    | [\'DataItem20\', \'Ryhmä Rivi 1\', \'Ryhmä Rivi 1DataItem\']
   |    | child_window(title=\"Ryhmä Rivi 1\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Muuttaja Rivi 1\'    (L0, T0, R0, B0)
   |    | [\'Muuttaja Rivi 1\', \'DataItem21\', \'Muuttaja Rivi 1DataItem\']
   |    | child_window(title=\"Muuttaja Rivi 1\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Muutettu Rivi 1\'    (L0, T0, R0, B0)
   |    | [\'Muutettu Rivi 1\', \'Muutettu Rivi 1DataItem\', \'DataItem22\']
   |    | child_window(title=\"Muutettu Rivi 1\", control_type=\"DataItem\")
   | 
   | Custom - \'Rivi 2\'    (L220, T356, R767, B378)
   | [\'Custom4\', \'Rivi 2Custom\', \'Rivi 2\', \'Rivi 20\', \'Rivi 21\']
   | child_window(title=\"Rivi 2\", control_type=\"Custom\")
   |    | 
   |    | Header - \'Rivi 2\'    (L220, T356, R244, B378)
   |    | [\'Rivi 2Header\', \'Header15\', \'Rivi 22\']
   |    | child_window(title=\"Rivi 2\", control_type=\"Header\")
   |    | 
   |    | DataItem - \'Henk.nro Rivi 2\'    (L244, T356, R294, B378)
   |    | [\'Henk.nro Rivi 2\', \'Henk.nro Rivi 2DataItem\', \'DataItem23\']
   |    | child_window(title=\"Henk.nro Rivi 2\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Käyttönimi Rivi 2\'    (L294, T356, R450, B378)
   |    | [\'Käyttönimi Rivi 2DataItem\', \'Käyttönimi Rivi 2\', \'DataItem24\']
   |    | child_window(title=\"Käyttönimi Rivi 2\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Alkupäivä Rivi 2\'    (L450, T356, R530, B378)
   |    | [\'Alkupäivä Rivi 2\', \'Alkupäivä Rivi 2DataItem\', \'DataItem25\']
   |    | child_window(title=\"Alkupäivä Rivi 2\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Loppupäivä Rivi 2\'    (L530, T356, R610, B378)
   |    | [\'Loppupäivä Rivi 2DataItem\', \'Loppupäivä Rivi 2\', \'DataItem26\']
   |    | child_window(title=\"Loppupäivä Rivi 2\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Pidätys-% 1 Rivi 2\'    (L610, T356, R660, B378)
   |    | [\'Pidätys-% 1 Rivi 2DataItem\', \'Pidätys-% 1 Rivi 2\', \'DataItem27\']
   |    | child_window(title=\"Pidätys-% 1 Rivi 2\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Pidätys-% 2 Rivi 2\'    (L660, T356, R710, B378)
   |    | [\'Pidätys-% 2 Rivi 2\', \'Pidätys-% 2 Rivi 2DataItem\', \'DataItem28\']
   |    | child_window(title=\"Pidätys-% 2 Rivi 2\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Tuloraja 1 Rivi 2\'    (L710, T356, R763, B378)
   |    | [\'Tuloraja 1 Rivi 2DataItem\', \'Tuloraja 1 Rivi 2\', \'DataItem29\']
   |    | child_window(title=\"Tuloraja 1 Rivi 2\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Maksaja Rivi 2\'    (L763, T356, R931, B378)
   |    | [\'Maksaja Rivi 2DataItem\', \'Maksaja Rivi 2\', \'DataItem30\']
   |    | child_window(title=\"Maksaja Rivi 2\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Ryhmä Rivi 2\'    (L0, T0, R0, B0)
   |    | [\'Ryhmä Rivi 2\', \'DataItem31\', \'Ryhmä Rivi 2DataItem\']
   |    | child_window(title=\"Ryhmä Rivi 2\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Muuttaja Rivi 2\'    (L0, T0, R0, B0)
   |    | [\'Muuttaja Rivi 2DataItem\', \'DataItem32\', \'Muuttaja Rivi 2\']
   |    | child_window(title=\"Muuttaja Rivi 2\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Muutettu Rivi 2\'    (L0, T0, R0, B0)
   |    | [\'Muutettu Rivi 2DataItem\', \'DataItem33\', \'Muutettu Rivi 2\']
   |    | child_window(title=\"Muutettu Rivi 2\", control_type=\"DataItem\")
   | 
   | Custom - \'Rivi 3\'    (L220, T378, R767, B400)
   | [\'Rivi 3Custom\', \'Custom5\', \'Rivi 3\', \'Rivi 30\', \'Rivi 31\']
   | child_window(title=\"Rivi 3\", control_type=\"Custom\")
   |    | 
   |    | Header - \'Rivi 3\'    (L220, T378, R244, B400)
   |    | [\'Rivi 3Header\', \'Header16\', \'Rivi 32\']
   |    | child_window(title=\"Rivi 3\", control_type=\"Header\")
   |    | 
   |    | DataItem - \'Henk.nro Rivi 3\'    (L244, T378, R294, B400)
   |    | [\'Henk.nro Rivi 3\', \'Henk.nro Rivi 3DataItem\', \'DataItem34\']
   |    | child_window(title=\"Henk.nro Rivi 3\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Käyttönimi Rivi 3\'    (L294, T378, R450, B400)
   |    | [\'Käyttönimi Rivi 3DataItem\', \'Käyttönimi Rivi 3\', \'DataItem35\']
   |    | child_window(title=\"Käyttönimi Rivi 3\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Alkupäivä Rivi 3\'    (L450, T378, R530, B400)
   |    | [\'Alkupäivä Rivi 3\', \'Alkupäivä Rivi 3DataItem\', \'DataItem36\']
   |    | child_window(title=\"Alkupäivä Rivi 3\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Loppupäivä Rivi 3\'    (L530, T378, R610, B400)
   |    | [\'Loppupäivä Rivi 3DataItem\', \'Loppupäivä Rivi 3\', \'DataItem37\']
   |    | child_window(title=\"Loppupäivä Rivi 3\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Pidätys-% 1 Rivi 3\'    (L610, T378, R660, B400)
   |    | [\'Pidätys-% 1 Rivi 3\', \'Pidätys-% 1 Rivi 3DataItem\', \'DataItem38\']
   |    | child_window(title=\"Pidätys-% 1 Rivi 3\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Pidätys-% 2 Rivi 3\'    (L660, T378, R710, B400)
   |    | [\'Pidätys-% 2 Rivi 3\', \'Pidätys-% 2 Rivi 3DataItem\', \'DataItem39\']
   |    | child_window(title=\"Pidätys-% 2 Rivi 3\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Tuloraja 1 Rivi 3\'    (L710, T378, R763, B400)
   |    | [\'Tuloraja 1 Rivi 3DataItem\', \'Tuloraja 1 Rivi 3\', \'DataItem40\']
   |    | child_window(title=\"Tuloraja 1 Rivi 3\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Maksaja Rivi 3\'    (L763, T378, R931, B400)
   |    | [\'Maksaja Rivi 3DataItem\', \'Maksaja Rivi 3\', \'DataItem41\']
   |    | child_window(title=\"Maksaja Rivi 3\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Ryhmä Rivi 3\'    (L0, T0, R0, B0)
   |    | [\'Ryhmä Rivi 3\', \'DataItem42\', \'Ryhmä Rivi 3DataItem\']
   |    | child_window(title=\"Ryhmä Rivi 3\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Muuttaja Rivi 3\'    (L0, T0, R0, B0)
   |    | [\'Muuttaja Rivi 3\', \'Muuttaja Rivi 3DataItem\', \'DataItem43\']
   |    | child_window(title=\"Muuttaja Rivi 3\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Muutettu Rivi 3\'    (L0, T0, R0, B0)
   |    | [\'Muutettu Rivi 3DataItem\', \'DataItem44\', \'Muutettu Rivi 3\']
   |    | child_window(title=\"Muutettu Rivi 3\", control_type=\"DataItem\")
   | 
   | Custom - \'Rivi 4\'    (L220, T400, R767, B422)
   | [\'Custom6\', \'Rivi 4\', \'Rivi 4Custom\', \'Rivi 40\', \'Rivi 41\']
   | child_window(title=\"Rivi 4\", control_type=\"Custom\")
   |    | 
   |    | Header - \'Rivi 4\'    (L220, T400, R244, B422)
   |    | [\'Header17\', \'Rivi 4Header\', \'Rivi 42\']
   |    | child_window(title=\"Rivi 4\", control_type=\"Header\")
   |    | 
   |    | DataItem - \'Henk.nro Rivi 4\'    (L244, T400, R294, B422)
   |    | [\'Henk.nro Rivi 4\', \'Henk.nro Rivi 4DataItem\', \'DataItem45\']
   |    | child_window(title=\"Henk.nro Rivi 4\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Käyttönimi Rivi 4\'    (L294, T400, R450, B422)
   |    | [\'DataItem46\', \'Käyttönimi Rivi 4DataItem\', \'Käyttönimi Rivi 4\']
   |    | child_window(title=\"Käyttönimi Rivi 4\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Alkupäivä Rivi 4\'    (L450, T400, R530, B422)
   |    | [\'Alkupäivä Rivi 4DataItem\', \'Alkupäivä Rivi 4\', \'DataItem47\']
   |    | child_window(title=\"Alkupäivä Rivi 4\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Loppupäivä Rivi 4\'    (L530, T400, R610, B422)
   |    | [\'Loppupäivä Rivi 4\', \'Loppupäivä Rivi 4DataItem\', \'DataItem48\']
   |    | child_window(title=\"Loppupäivä Rivi 4\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Pidätys-% 1 Rivi 4\'    (L610, T400, R660, B422)
   |    | [\'Pidätys-% 1 Rivi 4\', \'Pidätys-% 1 Rivi 4DataItem\', \'DataItem49\']
   |    | child_window(title=\"Pidätys-% 1 Rivi 4\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Pidätys-% 2 Rivi 4\'    (L660, T400, R710, B422)
   |    | [\'Pidätys-% 2 Rivi 4\', \'Pidätys-% 2 Rivi 4DataItem\', \'DataItem50\']
   |    | child_window(title=\"Pidätys-% 2 Rivi 4\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Tuloraja 1 Rivi 4\'    (L710, T400, R763, B422)
   |    | [\'Tuloraja 1 Rivi 4\', \'Tuloraja 1 Rivi 4DataItem\', \'DataItem51\']
   |    | child_window(title=\"Tuloraja 1 Rivi 4\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Maksaja Rivi 4\'    (L763, T400, R931, B422)
   |    | [\'Maksaja Rivi 4DataItem\', \'Maksaja Rivi 4\', \'DataItem52\']
   |    | child_window(title=\"Maksaja Rivi 4\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Ryhmä Rivi 4\'    (L0, T0, R0, B0)
   |    | [\'DataItem53\', \'Ryhmä Rivi 4\', \'Ryhmä Rivi 4DataItem\']
   |    | child_window(title=\"Ryhmä Rivi 4\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Muuttaja Rivi 4\'    (L0, T0, R0, B0)
   |    | [\'Muuttaja Rivi 4\', \'Muuttaja Rivi 4DataItem\', \'DataItem54\']
   |    | child_window(title=\"Muuttaja Rivi 4\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Muutettu Rivi 4\'    (L0, T0, R0, B0)
   |    | [\'Muutettu Rivi 4\', \'Muutettu Rivi 4DataItem\', \'DataItem55\']
   |    | child_window(title=\"Muutettu Rivi 4\", control_type=\"DataItem\")
   | 
   | Custom - \'Rivi 5\'    (L220, T422, R767, B444)
   | [\'Rivi 5\', \'Custom7\', \'Rivi 5Custom\', \'Rivi 50\', \'Rivi 51\']
   | child_window(title=\"Rivi 5\", control_type=\"Custom\")
   |    | 
   |    | Header - \'Rivi 5\'    (L220, T422, R244, B444)
   |    | [\'Rivi 52\', \'Header18\', \'Rivi 5Header\']
   |    | child_window(title=\"Rivi 5\", control_type=\"Header\")
   |    | 
   |    | DataItem - \'Henk.nro Rivi 5\'    (L244, T422, R294, B444)
   |    | [\'Henk.nro Rivi 5\', \'Henk.nro Rivi 5DataItem\', \'DataItem56\']
   |    | child_window(title=\"Henk.nro Rivi 5\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Käyttönimi Rivi 5\'    (L294, T422, R450, B444)
   |    | [\'Käyttönimi Rivi 5DataItem\', \'Käyttönimi Rivi 5\', \'DataItem57\']
   |    | child_window(title=\"Käyttönimi Rivi 5\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Alkupäivä Rivi 5\'    (L450, T422, R530, B444)
   |    | [\'Alkupäivä Rivi 5DataItem\', \'DataItem58\', \'Alkupäivä Rivi 5\']
   |    | child_window(title=\"Alkupäivä Rivi 5\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Loppupäivä Rivi 5\'    (L530, T422, R610, B444)
   |    | [\'Loppupäivä Rivi 5\', \'Loppupäivä Rivi 5DataItem\', \'DataItem59\']
   |    | child_window(title=\"Loppupäivä Rivi 5\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Pidätys-% 1 Rivi 5\'    (L610, T422, R660, B444)
   |    | [\'Pidätys-% 1 Rivi 5\', \'Pidätys-% 1 Rivi 5DataItem\', \'DataItem60\']
   |    | child_window(title=\"Pidätys-% 1 Rivi 5\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Pidätys-% 2 Rivi 5\'    (L660, T422, R710, B444)
   |    | [\'Pidätys-% 2 Rivi 5DataItem\', \'Pidätys-% 2 Rivi 5\', \'DataItem61\']
   |    | child_window(title=\"Pidätys-% 2 Rivi 5\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Tuloraja 1 Rivi 5\'    (L710, T422, R763, B444)
   |    | [\'Tuloraja 1 Rivi 5\', \'DataItem62\', \'Tuloraja 1 Rivi 5DataItem\']
   |    | child_window(title=\"Tuloraja 1 Rivi 5\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Maksaja Rivi 5\'    (L763, T422, R931, B444)
   |    | [\'DataItem63\', \'Maksaja Rivi 5DataItem\', \'Maksaja Rivi 5\']
   |    | child_window(title=\"Maksaja Rivi 5\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Ryhmä Rivi 5\'    (L0, T0, R0, B0)
   |    | [\'Ryhmä Rivi 5\', \'Ryhmä Rivi 5DataItem\', \'DataItem64\']
   |    | child_window(title=\"Ryhmä Rivi 5\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Muuttaja Rivi 5\'    (L0, T0, R0, B0)
   |    | [\'Muuttaja Rivi 5\', \'Muuttaja Rivi 5DataItem\', \'DataItem65\']
   |    | child_window(title=\"Muuttaja Rivi 5\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Muutettu Rivi 5\'    (L0, T0, R0, B0)
   |    | [\'Muutettu Rivi 5DataItem\', \'Muutettu Rivi 5\', \'DataItem66\']
   |    | child_window(title=\"Muutettu Rivi 5\", control_type=\"DataItem\")
   | 
   | Custom - \'Rivi 6\'    (L220, T444, R767, B466)
   | [\'Rivi 6\', \'Custom8\', \'Rivi 6Custom\', \'Rivi 60\', \'Rivi 61\']
   | child_window(title=\"Rivi 6\", control_type=\"Custom\")
   |    | 
   |    | Header - \'Rivi 6\'    (L220, T444, R244, B466)
   |    | [\'Rivi 62\', \'Header19\', \'Rivi 6Header\']
   |    | child_window(title=\"Rivi 6\", control_type=\"Header\")
   |    | 
   |    | DataItem - \'Henk.nro Rivi 6\'    (L244, T444, R294, B466)
   |    | [\'Henk.nro Rivi 6\', \'Henk.nro Rivi 6DataItem\', \'DataItem67\']
   |    | child_window(title=\"Henk.nro Rivi 6\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Käyttönimi Rivi 6\'    (L294, T444, R450, B466)
   |    | [\'Käyttönimi Rivi 6\', \'Käyttönimi Rivi 6DataItem\', \'DataItem68\']
   |    | child_window(title=\"Käyttönimi Rivi 6\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Alkupäivä Rivi 6\'    (L450, T444, R530, B466)
   |    | [\'Alkupäivä Rivi 6DataItem\', \'Alkupäivä Rivi 6\', \'DataItem69\']
   |    | child_window(title=\"Alkupäivä Rivi 6\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Loppupäivä Rivi 6\'    (L530, T444, R610, B466)
   |    | [\'Loppupäivä Rivi 6\', \'DataItem70\', \'Loppupäivä Rivi 6DataItem\']
   |    | child_window(title=\"Loppupäivä Rivi 6\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Pidätys-% 1 Rivi 6\'    (L610, T444, R660, B466)
   |    | [\'DataItem71\', \'Pidätys-% 1 Rivi 6\', \'Pidätys-% 1 Rivi 6DataItem\']
   |    | child_window(title=\"Pidätys-% 1 Rivi 6\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Pidätys-% 2 Rivi 6\'    (L660, T444, R710, B466)
   |    | [\'Pidätys-% 2 Rivi 6DataItem\', \'Pidätys-% 2 Rivi 6\', \'DataItem72\']
   |    | child_window(title=\"Pidätys-% 2 Rivi 6\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Tuloraja 1 Rivi 6\'    (L710, T444, R763, B466)
   |    | [\'Tuloraja 1 Rivi 6DataItem\', \'DataItem73\', \'Tuloraja 1 Rivi 6\']
   |    | child_window(title=\"Tuloraja 1 Rivi 6\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Maksaja Rivi 6\'    (L763, T444, R931, B466)
   |    | [\'Maksaja Rivi 6DataItem\', \'Maksaja Rivi 6\', \'DataItem74\']
   |    | child_window(title=\"Maksaja Rivi 6\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Ryhmä Rivi 6\'    (L0, T0, R0, B0)
   |    | [\'Ryhmä Rivi 6DataItem\', \'Ryhmä Rivi 6\', \'DataItem75\']
   |    | child_window(title=\"Ryhmä Rivi 6\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Muuttaja Rivi 6\'    (L0, T0, R0, B0)
   |    | [\'Muuttaja Rivi 6\', \'Muuttaja Rivi 6DataItem\', \'DataItem76\']
   |    | child_window(title=\"Muuttaja Rivi 6\", control_type=\"DataItem\")
   |    | 
   |    | DataItem - \'Muutettu Rivi 6\'    (L0, T0, R0, B0)
   |    | [\'Muutettu Rivi 6DataItem\', \'Muutettu Rivi 6\', \'DataItem77\']
   |    | child_window(title=\"Muutettu Rivi 6\", control_type=\"DataItem\")

    标签: python com ui-automation pywinauto uia


    【解决方案1】:
    1. 通过查看 dump_tree 似乎您正在使用 win32 后端,无论哪种情况都尝试切换到后端。除了尝试两者并找出适合您的后端之外,没有确定哪个后端可以工作的具体方法。 Pywinauto getting started 将有助于您识别后端。

    2. 要访问 32 位的应用程序,您应该考虑使用 32 位 python 安装。参考这个答案 - https://stackoverflow.com/a/34115067/5400362

    3. 考虑以提升的权限运行应用程序,即使用管理员模式命令提示符。

    4. 如果所有这些选项都不能解决您的问题,请在执行任何操作之前尝试使用一些waits,并在等待时检查ready 状态。例如 -

      window.child_window(control_type="Table").wait('ready', 5, 1).child_window(title="Rivi 0", control_type="Custom").wait('ready', 3, 1).child_window(control_type="DataItem", found_index=0).wait('ready', 3, 1).click_input()
      

    【讨论】:

    • 感谢您的建议。不幸的是,他们没有解决问题。我正在使用“uia”后端,不能以管理员身份运行,并且在应用等待时,程序仍然冻结并且 pywinauto 引发 TimeoutError
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-21
    相关资源
    最近更新 更多