我正在尝试自动化一个内部应用程序,我在点击特定的"按钮时遇到了挑战,例如"控制可以带我到下一页。当我打印控件标识符时,它打印如下
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;窗格[无父母]
答案 0 :(得分:0)
如果您使用的是Inspect.exe
,则必须遵守Application(backend='uia').start(...)
的UIA后端。因为您的应用看起来像WPF。
如果按钮未被识别为按钮,则通过方法.click_input()
进行逼真点击的更通用方法。