python进入软件页面操作

如何进入操作窗口,将控件属性下面都发了,麻烦指点怎么进入最晚签收查询页面

img


这个是通过inspect查询的最晚签收查询菜单属性

How found:    Selected from tree...
Name:    "最晚签收查询"
ControlType:    UIA_MenuItemControlTypeId (0xC35B)
LocalizedControlType:    "菜单项目"
BoundingRectangle:    {l:93 t:623 r:318 b:673}
IsEnabled:    true
IsOffscreen:    false
IsKeyboardFocusable:    true
HasKeyboardFocus:    false
AccessKey:    ""
ProcessId:    9040
RuntimeId:    [2A.105EC.4.FFFFCD64]
FrameworkId:    "Chrome"
IsControlElement:    true
ProviderDescription:    "[pid:9040,providerId:0x0 Main(parent link):Microsoft: MSAA Proxy (IAccessible2) (unmanaged:UIAutomationCore.DLL)]"
AriaRole:    "menuitem"
AriaProperties:    ""
IsPassword:    false
IsRequiredForForm:    false
IsDataValidForForm:    true
HelpText:    ""
Culture:    9
PositionInSet:    1
SizeOfSet:    5
IsDialog:    false
LegacyIAccessible.ChildId:    0
LegacyIAccessible.DefaultAction:    "选中"
LegacyIAccessible.Description:    ""
LegacyIAccessible.Help:    ""
LegacyIAccessible.KeyboardShortcut:    ""
LegacyIAccessible.Name:    "最晚签收查询"
LegacyIAccessible.Role:    菜单项目 (0xC)
LegacyIAccessible.State:    可设定焦点 (0x100000)

Next:    "货量预报查询(老)" 菜单项目
Previous:    [null]
Other Props:    Object has no additional properties
Children:    Container has no children
Ancestors:    "" 菜单
    "" 菜单
    "" 菜单
    """""河南信阳息县" 文档
    "河南信阳息县" 窗格
    "桌面 1" 窗格
    [ No Parent ]

img

这个是通过inspect查询的最晚签收查询页面的属性,能否通过连接直接进入


```python
How found:    Focus
    hwnd=0x003406C4 64bit class="Chrome_RenderWidgetHostHWND" style=0x56300000 ex=0x20
Name:    "最晚签收查询 - KPI管理"
ControlType:    UIA_DocumentControlTypeId (0xC36E)
LocalizedControlType:    "文档"
BoundingRectangle:    {l:319 t:177 r:1409 b:967}
IsEnabled:    true
IsOffscreen:    false
IsKeyboardFocusable:    true
HasKeyboardFocus:    true
AccessKey:    ""
ProcessId:    9040
RuntimeId:    [2A.3406C4.4.FFFFDF04]
AutomationId:    "52016032"
FrameworkId:    "Chrome"
ClassName:    "Chrome_RenderWidgetHostHWND"
NativeWindowHandle:    0x3406C4
IsControlElement:    true
ProviderDescription:    "[pid:7420,providerId:0x3406C4 Main:Nested [pid:9040,providerId:0x3406C4 Annotation(parent link):Microsoft: Annotation Proxy (unmanaged:UIAutomationCore.DLL); Main:Microsoft: MSAA Proxy (IAccessible2) (unmanaged:UIAutomationCore.DLL)]; Hwnd(parent link):Microsoft: HWND Proxy (unmanaged:uiautomationcore.dll)]"
AriaProperties:    ""
IsPassword:    false
IsRequiredForForm:    false
IsDataValidForForm:    true
HelpText:    ""
Culture:    2052
IsDialog:    false
LegacyIAccessible.ChildId:    0
LegacyIAccessible.DefaultAction:    ""
LegacyIAccessible.Description:    ""
LegacyIAccessible.Help:    ""
LegacyIAccessible.KeyboardShortcut:    ""
LegacyIAccessible.Name:    "最晚签收查询 - KPI管理"
LegacyIAccessible.Role:    文档 (0xF)
LegacyIAccessible.State:    已设定焦点,只读,可设定焦点 (0x100044)
LegacyIAccessible.Value:    "https://max.ane56.com/kpi/manage/latestSignFor/query?isNoMenus=true&hideNoticeicon=true"
Scroll.HorizontallyScrollable:    false
Scroll.HorizontalScrollPercent:    0.000000
Scroll.HorizontalViewSize:    100.000000
Scroll.VerticallyScrollable:    false
Scroll.VerticalScrollPercent:    0.000000
Scroll.VerticalViewSize:    100.000000
Value.IsReadOnly:    true
Value.Value:    "https://max.ane56.com/kpi/manage/latestSignFor/query?isNoMenus=true&hideNoticeicon=true"

以下控件属性是通过print_control_identifiers()获取的属性

|    |    | MenuItem - '综合查询 '    (L93, T631, R318, B687)
   |    |    | ['MenuItem8', '综合查询 \uf0da', '综合查询 \uf0daMenuItem']
   |    |    | child_window(title="综合查询 ", control_type="MenuItem")
   |    |    |    | 
   |    |    |    | Static - '综合查询'    (L124, T646, R200, B672)
   |    |    |    | ['Static26', '综合查询', '综合查询Static']
   |    |    |    | child_window(title="综合查询", control_type="Text")
   |    |    |    | 
   |    |    |    | Static - ''    (L104, T651, R123, B670)
   |    |    |    | ['\uf0da8', 'Static27', '\uf0daStatic8']
   |    |    |    | child_window(title="", control_type="Text")
   |    |    | 
   |    |    | Menu - ''    (L93, T686, R318, B1202)
   |    |    | ['\uf0daMenu2', 'Menu2']
   |    |    | child_window(auto_id="rc-menu-uuid-84804-1-593130-popup", control_type="Menu")
   |    |    |    | 
   |    |    |    | MenuItem - '扫描查询 '    (L93, T686, R318, B741)
   |    |    |    | ['扫描查询 \uf0daMenuItem', '扫描查询 \uf0da', 'MenuItem9']
   |    |    |    | child_window(title="扫描查询 ", control_type="MenuItem")
   |    |    |    |    | 
   |    |    |    |    | Static - '扫描查询'    (L135, T701, R206, B725)
   |    |    |    |    | ['Static28', '扫描查询', '扫描查询Static']
   |    |    |    |    | child_window(title="扫描查询", control_type="Text")
   |    |    |    |    | 
   |    |    |    |    | Static - ''    (L121, T705, R128, B724)
   |    |    |    |    | ['\uf0da9', 'Static29', '\uf0daStatic9']
   |    |    |    |    | child_window(title="", control_type="Text")
   |    |    |    | 
   |    |    |    | MenuItem - '新闻管理 '    (L93, T740, R318, B795)
   |    |    |    | ['MenuItem10', '新闻管理 \uf0daMenuItem', '新闻管理 \uf0da']
   |    |    |    | child_window(title="新闻管理 ", control_type="MenuItem")
   |    |    |    |    | 
   |    |    |    |    | Static - '新闻管理'    (L135, T755, R206, B779)
   |    |    |    |    | ['新闻管理', 'Static30', '新闻管理Static']
   |    |    |    |    | child_window(title="新闻管理", control_type="Text")
   |    |    |    |    | 
   |    |    |    |    | Static - ''    (L121, T759, R128, B778)
   |    |    |    |    | ['\uf0da10', 'Static31', '\uf0daStatic10']
   |    |    |    |    | child_window(title="", control_type="Text")
   |    |    |    | 
   |    |    |    | MenuItem - '监控管理 '    (L93, T794, R318, B849)
   |    |    |    | ['监控管理 \uf0da', 'MenuItem11', '监控管理 \uf0daMenuItem']
   |    |    |    | child_window(title="监控管理 ", control_type="MenuItem")
   |    |    |    |    | 
   |    |    |    |    | Static - '监控管理'    (L135, T809, R206, B833)
   |    |    |    |    | ['Static32', '监控管理', '监控管理Static']
   |    |    |    |    | child_window(title="监控管理", control_type="Text")
   |    |    |    |    | 
   |    |    |    |    | Static - ''    (L121, T813, R128, B832)
   |    |    |    |    | ['\uf0da11', 'Static33', '\uf0daStatic11']
   |    |    |    |    | child_window(title="", control_type="Text")
   |    |    |    | 
   |    |    |    | MenuItem - '报表分析 '    (L93, T848, R318, B903)
   |    |    |    | ['MenuItem12', '报表分析 \uf0da', '报表分析 \uf0daMenuItem']
   |    |    |    | child_window(title="报表分析 ", control_type="MenuItem")
   |    |    |    |    | 
   |    |    |    |    | Static - '报表分析'    (L135, T863, R206, B887)
   |    |    |    |    | ['报表分析', 'Static34', '报表分析Static']
   |    |    |    |    | child_window(title="报表分析", control_type="Text")
   |    |    |    |    | 
   |    |    |    |    | Static - ''    (L121, T867, R128, B886)
   |    |    |    |    | ['\uf0da12', 'Static35', '\uf0daStatic12']
   |    |    |    |    | child_window(title="", control_type="Text")
   |    |    |    | 
   |    |    |    | MenuItem - '统计分析 '    (L93, T902, R318, B957)
   |    |    |    | ['MenuItem13', '统计分析 \uf0da', '统计分析 \uf0daMenuItem']
   |    |    |    | child_window(title="统计分析 ", control_type="MenuItem")
   |    |    |    |    | 
   |    |    |    |    | Static - '统计分析'    (L135, T917, R206, B941)
   |    |    |    |    | ['统计分析', '统计分析Static', 'Static36']
   |    |    |    |    | child_window(title="统计分析", control_type="Text")
   |    |    |    |    | 
   |    |    |    |    | Static - ''    (L116, T922, R134, B940)
   |    |    |    |    | ['\uf0da13', 'Static37', '\uf0daStatic13']
   |    |    |    |    | child_window(title="", control_type="Text")
   |    |    |    | 
   |    |    |    | Menu - ''    (L0, T0, R0, B0)
   |    |    |    | ['Menu3']
   |    |    |    | child_window(auto_id="rc-menu-uuid-84804-1-593158-popup", control_type="Menu")
   |    |    |    |    | 
   |    |    |    |    | MenuItem - '最晚签收查询'    (L0, T0, R0, B0)
   |    |    |    |    | ['MenuItem14', '最晚签收查询', '最晚签收查询MenuItem', '最晚签收查询0', '最晚签收查询1']
   |    |    |    |    | child_window(title="最晚签收查询", control_type="MenuItem")
   |    |    |    |    | 
   |    |    |    |    | MenuItem - '货量预报查询(老)'    (L0, T0, R0, B0)
   |    |    |    |    | ['MenuItem15', '货量预报查询(老)MenuItem', '货量预报查询(老)']
   |    |    |    |    | child_window(title="货量预报查询(老)", control_type="MenuItem")
   |    |    |    |    | 
   |    |    |    |    | MenuItem - '是否签收统计(老)'    (L0, T0, R0, B0)
   |    |    |    |    | ['MenuItem16', '是否签收统计(老)', '是否签收统计(老)MenuItem', '是否签收统计(老)0', '是否签收统计(老)1']
   |    |    |    |    | child_window(title="是否签收统计(老)", control_type="MenuItem")
   |    |    |    |    | 
   |    |    |    |    | MenuItem - '网点应到件统计'    (L0, T0, R0, B0)
   |    |    |    |    | ['MenuItem17', '网点应到件统计', '网点应到件统计MenuItem']
   |    |    |    |    | child_window(title="网点应到件统计", control_type="MenuItem")
   |    |    |    |    | 
   |    |    |    |    | MenuItem - '重量差异监控'    (L0, T0, R0, B0)
   |    |    |    |    | ['MenuItem18', '重量差异监控MenuItem', '重量差异监控']
   |    |    |    |    | child_window(title="重量差异监控", control_type="MenuItem")

```

用FindWindow和FindChildWindows一层一层找下去(这两个函数都是根据窗口类和标题找到窗口句柄)
最后模拟点击,发送 wm_lbuttondown wm_lbuttonup

利用pyautogui库可以实现,提前截好图“综合查询”"统计分析""最晚",这个库是可以通过查找图片来定位坐标并发送点击事件的

在Python中进行软件界面操作通常需要使用GUI库。Python有多个流行的GUI库可供选择,其中一些包括:

Tkinter:Python的标准GUI库,易于学习和使用。
PyQt:基于Qt库的Python绑定,提供强大和灵活的GUI开发功能。
PyGTK:基于GTK+库的Python绑定,适用于GNOME桌面环境。
wxPython:基于wxWidgets库的Python绑定,提供跨平台的GUI开发能力。
下面是一个使用Tkinter库创建简单GUI界面的示例:

import tkinter as tk

def on_button_click():
    label.config(text="Hello, World!")

# 创建窗口
window = tk.Tk()

# 添加标签
label = tk.Label(window, text="Welcome to my app!")
label.pack()

# 添加按钮
button = tk.Button(window, text="Click Me", command=on_button_click)
button.pack()

# 进入主循环
window.mainloop()


在这个示例中,我们导入了tkinter库,并创建了一个窗口。然后,我们添加了一个标签和一个按钮。当按钮被点击时,调用on_button_click函数来改变标签的文本。最后,我们使用mainloop()方法进入主循环,使窗口保持可见并响应用户操作。

这只是一个简单的示例,你可以根据自己的需求和复杂度进一步扩展GUI界面的设计和功能。请注意,不同的GUI库有不同的用法和功能,因此你需要查阅相应库的文档以了解更多细节。

请注意,如果你在服务器环境中运行Python代码,可能没有图形界面可用,因为服务器通常是没有图形界面的。在这种情况下,你可以考虑使用Web框架(如Django、Flask)来创建基于Web的用户界面。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

Python 实现快递物流信息查询
可以参考下

如果不是动态加载的,可以通过连接进入到你要打开的这个窗口。你可以将找到的链接复制到浏览器,看下能否正常打开。如果不能或者是动态加载的,那么你应该找到这个窗口左侧菜单的位置,使用自动点击的思路,点击左侧相应的菜单功能,来自动打开你要的窗口界面。

定位最晚签收查询菜单项或者逐级点击进入

以下答案参考newbing,回答由博主波罗歌编写:
根据你提供的信息,你可以使用 pywinauto 库来操作页面控件和属性。这个库可以用来自动化测试和控制 Windows 应用程序和浏览器。以下是一个使用 pywinauto 进行操作的示例代码:

首先,你需要安装 pywinauto 库。你可以使用如下命令来安装:

pip install pywinauto

然后,你可以使用以下代码来进入最晚签收查询页面:

from pywinauto import Application

# 启动Chrome
app = Application(backend="uia").start("chrome.exe")

# 连接到Chrome窗口
chrome_window = app.window(title_re='.*Chrome.*', class_name='Chrome_WidgetWin_1')

# 最大化Chrome窗口
chrome_window.maximize()

# 打开最晚签收查询页面
chrome_window.child_window(title="最晚签收查询", control_type="MenuItem").click()

希望这可以帮助到你进入最晚签收查询页面。请注意,你可能需要根据你的特定环境和页面进行一些适应和调整。
如果我的回答解决了您的问题,请采纳!