pywinauto点击按钮

时间:2017-10-24 06:24:02

标签: pywinauto

我正在尝试自动化一个内部应用程序,我在点击特定的"按钮时遇到了挑战,例如"控制可以带我到下一页。当我打印控件标识符时,它打印如下

  

HwndWrapper [.MainApplication.exe ;; xxxxxxxxxxxxxxx] -   '主窗口' (L0,T0,R1299,B647)[' MainWindow',   ' MainWindowHwndWrapper [.MainApplication.exe ;; XXXXXXXXXXXXXXX]&#39 ;,   ' HwndWrapper [.MainApplication.exe ;; XXXXXXXXXXXXXXX]']   child_window(标题="主窗口&#34 ;,   CLASS_NAME =" HwndWrapper [.MainApplication.exe ;; XXXXXXXXXXXXXXX]&#34)

我的代码如下:

from pywinauto.application import Application import time

app = Application().Start(cmd_line=u'"<myapp>"') time.sleep(25)

hwnd = app.MainWindow
hwnd.Wait('ready')
hwnd.print_control_identifiers() 
hwnd.Click()

使用appication&#34; Inspect&#34;,我可以找到元素,但我无法点击相同的元素。

有人可以建议我继续进一步吗?

检查输出:

  

如何找到:鼠标移动(156,295)hwnd = 0x000D009A 32bit   类=&#34; HwndWrapper [默认域;; XXXXXXXXXXXXXXXX]&#34;风格= 0x17080000   ex = 0x40000 RuntimeId:&#34; [7.7412.5972994]&#34; BoundingRectangle:{l:97   t:288 r:172 b:306} ProcessId:7412 ControlType:UIA_TextControlTypeId   (0xC364)LocalizedControlType:&#34; text&#34;姓名:&#34;翻译1&#34;   AcceleratorKey:&#34;&#34; AccessKey:&#34;&#34; HasKeyboardFocus:false   IsKeyboardFocusable:false IsEnabled:true AutomationId:&#34;&#34;   ClassName:&#34; TextBlock&#34; HelpText:&#34;&#34; ClickablePoint:{x:134 y:297}   IsControlElement:true IsContentElement:true IsPassword:false   ItemType:&#34;&#34; IsOffscreen:false Orientation:0 FrameworkId:&#34; WPF&#34;   IsRequiredForForm:false ItemStatus:&#34;&#34;   ProviderDescription:&#34; [pid:7412,providerId:0x0 Main(父级   链接):身份不明的提供商   (托管:MS.Internal.Automation.ElementProxy,PresentationCore,   Version = 4.0.0.0,Culture = neutral,PublicKeyToken = xxxxxxxxx)]&#34;   IsDockPatternAvailable:false IsExpandCollapsePatternAvailable:false   IsGridItemPatternAvailable:false IsGridPatternAvailable:false   IsInvokePatternAvailable:false IsMultipleViewPatternAvailable:false   IsRangeValuePatternAvailable:false IsScrollPatternAvailable:false   IsScrollItemPatternAvailable:false   IsSelectionItemPatternAvailable:false   IsSelectionPatternAvailable:false IsTablePatternAvailable:false   IsTableItemPatternAvailable:false IsTextPatternAvailable:false   IsTogglePatternAvailable:false IsTransformPatternAvailable:false   IsValuePatternAvailable:false IsWindowPatternAvailable:false   IsItemContainerPatternAvailable:false   IsVirtualizedItemPatternAvailable:false FirstChild:[null]   LastChild:[null]下一个:[null]上一个:[null]其他道具:对象   没有其他属性儿童:容器没有孩子   祖先:&#34;&#34;按钮&#34;&#34;窗格&#34;&#34;定制&#34; MainWindow&#34;窗口     &#34;桌面1&#34;窗格[无父母]

1 个答案:

答案 0 :(得分:0)

如果您使用的是Inspect.exe,则必须遵守Application(backend='uia').start(...)的UIA后端。因为您的应用看起来像WPF。

Getting Started Guide

中阅读更多详情

如果按钮未被识别为按钮,则通过方法.click_input()进行逼真点击的更通用方法。