【问题标题】:How to click using pywinauto如何使用pywinauto点击
【发布时间】:2018-08-28 07:41:56
【问题描述】:

我想用pywinauto来控制一个图像处理软件。

首先,我需要单击特定区域(用于图像拖动)以弹出一个用于路径输入的窗口。见第一张图。

然后,我需要输入路径并单击“选择文件夹”按钮。见第二张图。

我试过了:

from pywinauto import Desktop, Application, mouse, findwindows
from pywinauto.keyboard import SendKeys

app = Application(backend='uia').start(r"C:\Program Files\Duplicate Photo Cleaner\DuplicatePhotoCleaner.exe")
app.connect(path="DuplicatePhotoCleaner.exe")
app.DuplicatePhotoCleaner.print_control_identifiers()

Control Identifiers:

Dialog - 'Duplicate Photo Cleaner'    (L440, T126, R1480, B915)
['Duplicate Photo Cleaner', 'Duplicate Photo CleanerDialog', 'Dialog']
child_window(title="Duplicate Photo Cleaner", control_type="Window")
   | 
   | TitleBar - ''    (L464, T129, R1472, B157)
   | ['', 'TitleBar']
   |    | 
   |    | Menu - 'System'    (L448, T134, R470, B156)
   |    | ['System', 'Menu', 'SystemMenu', 'System0', 'System1']
   |    | child_window(title="System", auto_id="MenuBar", control_type="MenuBar")
   |    |    | 
   |    |    | MenuItem - 'System'    (L448, T134, R470, B156)
   |    |    | ['System2', 'SystemMenuItem', 'MenuItem']
   |    |    | child_window(title="System", control_type="MenuItem")
   |    | 
   |    | Button - 'Minimize'    (L1333, T127, R1380, B157)
   |    | ['Minimize', 'Button', 'MinimizeButton', 'Button0', 'Button1']
   |    | child_window(title="Minimize", control_type="Button")
   |    | 
   |    | Button - 'Maximize'    (L1380, T127, R1426, B157)
   |    | ['Button2', 'Maximize', 'MaximizeButton']
   |    | child_window(title="Maximize", control_type="Button")
   |    | 
   |    | Button - 'Close'    (L1426, T127, R1473, B157)
   |    | ['CloseButton', 'Button3', 'Close']
   |    | child_window(title="Close", control_type="Button")

谁能帮忙?

非常感谢。

【问题讨论】:

  • 谁能帮忙?
  • 为什么您尝试的代码无法正常工作?出了什么问题?
  • 我只是打印出控件标识符,但我不知道如何使用它们。

标签: python pywinauto


【解决方案1】:

看起来像+ 按钮,您需要单击以获取窗口(如第二个图所示)是所有者绘制的。

因此,只有一种方法可以打开“添加文件夹以进行搜索”窗口:通过传递坐标使用click_input 方法。

一旦窗口出现,您可以使用以下代码设置值:

app.DuplicatePhotoCleaner.child_window(title="Folder:", auto_id="1152", control_type="Edit").set_text('Hello world') #or
app.DuplicatePhotoCleaner['Folder:Edit'].set_text('Hello world')


Application().connect(title='Add folder to search')...

请通过pywinauto docs 了解更多信息。

【讨论】:

    猜你喜欢
    • 2017-02-20
    • 1970-01-01
    • 1970-01-01
    • 2017-10-20
    • 1970-01-01
    • 1970-01-01
    • 2020-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多