旧版应用程序上的 Windows GUI 自动化

2024-01-12

我正在尝试自动化一个名为的旧 Windows 应用程序FacTel5 http://www.movistar.es/empresas/ayuda/factel-abierto-empresas/.

我已经能够自动化登录部分,但下一个表单是一个类似项目符号的列表,其控件是not在 pywinauto control_identifiers 或 Windows Inspect 上都没有显示

from pywinauto.application import Application
app = Application(backend="uia").start(r'C:\Factel5\Factel5.exe')

controlAcceso = app.FacTel5['Control de acceso a FacTel5'].GroupBox

user = controlAcceso.child_window(auto_id="4", control_type="Edit")
user.type_keys("userid")

password = controlAcceso.child_window(auto_id="5", control_type="Edit")
password.type_keys("password")

controlAcceso.child_window(title="Aceptar", auto_id="3", control_type="Button").click()

pro = app.process
winApp = Application().connect(process=app.process)

App使用“uia”后端和winApp使用 win32 后端自动连接。

上面的代码让我进入这个窗口,如果您需要/自己尝试该代码,那么凭据是正确的(并且它们是在程序手册 http://www.movistar.es/Microsites/factel/filer/Manual_Usuario_F5_V1_7.pdf).

我的目标是单击列表的第一个元素。

我非常感谢您提供的任何帮助。


这些控件甚至不会对键盘操作做出反应。所以唯一的解决办法就是通过坐标点击!但是停下来!这是不可靠的!如果它是绝对屏幕坐标,是的。但我们可以使用相对坐标(原点是控件的左上角)。如果控件大小是固定的,那么它是可靠的。

这段代码适用于我的 Win10 x64:

from pywinauto.application import Application

app = Application(backend="uia").start(cmd_line=r"C:\Program Files (x86)\Factel5\Factel5.exe")
# this main window spec should work even if the subtitle changes
main_window = app.window(title_re=u'FacTel5 - Telef\u0443nica.*')

controlAcceso = main_window['Control de acceso a FacTel5'].GroupBox
user = controlAcceso.Edit1
user.set_text("userid")
password = controlAcceso.Edit2
password.set_text("password")
controlAcceso.child_window(title="Aceptar", control_type="Button").click()

controlAcceso = main_window['Control de acceso a FacTel5'].child_window(title=u'\u0457Qu\u0439 desea hacer?')
# controlAcceso = main_window['Control de acceso a FacTel5'][u'\u0457Qu\u0439 desea hacer?'] # TODO: need a bug fix
rect = controlAcceso.rectangle()
item1 = (rect.width() / 2, int(float(rect.height() * 2.0) / 11.5))
item2 = (rect.width() / 2, int(float(rect.height() * 3.0) / 11.5))
item3 = (rect.width() / 2, int(float(rect.height() * 4.0) / 11.5))
item4 = (rect.width() / 2, int(float(rect.height() * 5.0) / 11.5))
item5 = (rect.width() / 2, int(float(rect.height() * 6.0) / 11.5))

item6 = (rect.width() / 2, int(float(rect.height() * 8.5) / 11.5))
item7 = (rect.width() / 2, int(float(rect.height() * 9.0) / 11.5))
item8_exit = (rect.width() / 2, int(float(rect.height() * 10.0) / 11.5))

# uncomment move_mouse and comment click_input to see where the click happens
# controlAcceso.move_mouse_input(coords=item1, absolute=False)
controlAcceso.click_input(coords=item1, absolute=False)

main_window.menu_select(u'Facturaciones->Gestión de facturaciones')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

旧版应用程序上的 Windows GUI 自动化 的相关文章

  • bs4 `next_sibling` VS `find_next_sibling`

    我在使用时遇到困难next sibling 并且类似地与next element 如果用作属性 我不会得到任何返回 但如果用作find next sibling or find next 然后就可以了 来自doc https www cru
  • 如何创建向后兼容 Windows 7 的缩放和尺寸更改每显示器 DPI 感知应用程序?

    我是 WPF 和 DPI 感知 API 的新手 正在编写一个在 Windows 7 8 1 和 10 中运行的应用程序 我使用具有不同每个显示器 DPI 设置的多个显示器 并且有兴趣将我的应用程序制作为跨桌面配置尽可能兼容 我已经知道可以将
  • VB - 以隐式方式链接 DLL

    我正在开发 VB6 图形界面 并且需要隐式链接到 DLL 这样做的动机来自于我上一个问题 https stackoverflow com questions 5194573 有问题的 DLL 使用静态 TLS declspec thread
  • 无法加载 JNI 共享库 (JDK)

    当我尝试打开时Eclipse http www eclipse org 弹出对话框指出 无法加载 JNI 共享库 C JDK bin client jvm dll 此后 Eclipse 强制关闭 我想提出以下几点 我检查了这条路径上是否存在
  • 使用 sed 更新 xml 属性(Windows + cygwin 和 Linux)?

    我需要使用 sed 命令对 xml 文件进行更新 但我在这方面遇到了麻烦 它需要在 Windows 使用 cygwin 和 Linux 上运行 XML 具有以下元素
  • conio.h 不包含 textcolor()?

    我一直在考虑在我用 C 编写的 DOS 程序中使用颜色 有人告诉我conio h有textcolor 函数 但是当我在代码中使用它时 编译器 链接器会向我抛出错误 说我对该函数有未定义的引用 Does conio h真的有这个功能还是有人告
  • 当变量取特定值时如何使 PyCharm 中断?

    我有一本大字典 其中一些元素偶尔会出现非法值 我想弄清楚非法值从何而来 PyCharm 应该不断监视我的字典的值 一旦它们中的任何一个取了非法值 它就应该中断并让我检查程序的状态 我知道我可以通过为我的字典创建一个 getter sette
  • Python zmq SUB 套接字未接收 MQL5 Zmq PUB 套接字

    我正在尝试在 MQL5 中设置一个 PUB 套接字 并在 Python 中设置一个 SUB 套接字来接收消息 我在 MQL5 中有这个 include
  • 如何使用 Pandas、Numpy 加速 Python 中的嵌套 for 循环逻辑?

    我想检查一下表的字段是否TestProject包含了Client端传入的参数 嵌套for循环很丑陋 有什么高效简单的方法来实现吗 非常感谢您的任何建议 def test parameter a list parameter b list g
  • Python,将函数的输出重定向到文件中

    我正在尝试将函数的输出存储到Python中的文件中 我想做的是这样的 def test print This is a Test file open Log a file write test file close 但是当我这样做时 我收到
  • Jupyter Notebook 找不到 Python 模块

    不知道发生了什么 但每当我使用 ipython 氢 原子 或 jupyter 笔记本时都找不到任何已安装的模块 我知道我安装了 pandas 但笔记本说找不到 我应该补充一点 当我正常运行脚本时 python script py 它确实导入
  • FTP 下载冻结整个应用程序

    我正在尝试从 FTP 服务器下载一个大约 100 MB 的文件 这是一个测试 bin 文件 因为我正在测试该应用程序 我猜我将来想要下载的文件会更重 当我想下载文件时 整个应用程序就会冻结 几秒钟后它就会下载文件 该文件已完成 并且已成功下
  • 如何在 Windows 下向 .sh 脚本传递参数?

    我正在尝试在 Windows 下执行 sh 脚本 我安装了 Git 它允许我执行 sh 文件 但是 如果不使用 sh 作为执行前缀 我似乎无法传递任何参数 我的 sh 文件 echo Test 1 如果我用以下命令执行它 gt sh tes
  • str.translate 与 str.replace - 何时使用哪一个?

    何时以及为什么使用前者而不是后者 反之亦然 目前尚不完全清楚为什么有些人使用前者以及为什么有些人使用后者 它们有不同的目的 translate只能用任意字符串替换单个字符 但一次调用可以执行多次替换 它的参数是一个特殊的表 它将单个字符映射
  • 如何在Windows中的Python 3.9下pip安装pickle?

    我需要pickle https docs python org 3 9 library pickle html module pickle包安装在我的下面Python 3 9在 Windows 10 下 我尝试过的 当尝试与pip inst
  • 导入 pandas 显示 ImportError: 无法导入名称哈希表

    我已经在 python 3 3 上安装了 pandas 代码如下 import csv import pandas from pandas import DataFrame csvdata pandas read csv datafile
  • 用于推送通知的设备令牌

    我正在实施推送通知服务 我需要创建一个数据库来存储 4 个移动平台的所有设备令牌 我想根据他们的平台 iOS Android BlackBerry WP7 来组织它们 但是有什么方法可以区分平台 这样如果我只想向 Android 用户发送消
  • 没有名为“turtle”的模块

    我正在学习并尝试用Python3制作贪吃蛇游戏 我正在进口海龟 我正在使用 Linux mint 19 PyCharm python37 python3 tk Traceback most recent call last File hom
  • 具有固定顶部菜单的语义 UI 侧边栏

    Semantic UI 对其进行预警侧边栏页面 http semantic ui com modules sidebar html usage 当侧边栏出现时 固定位置内容可能会出现改变其位置的问题 然后它提供了该问题的两种可能的解决方案
  • 如何同时接受int和float类型的输入?

    我正在制作一个货币转换器 如何让 python 同时接受整数和浮点数 我就是这样做的 def aud brl amount From to ER 0 42108 if amount int if From strip aud and to

随机推荐

  • 检索按值排序的映射中条目周围固定数量的条目

    POJO 即 入口 java 代表排行榜中的一个条目 Position是排行榜中的位置 1是得分最高的用户 public class Entry private String uid private int score private in
  • 将 Firefox 切换为使用与 windows.host 文件中不同的 DNS

    例如 我在不同的服务器上有一个开发站点 但我正在尝试从实时站点复制内容 因此将实时站点放在 IE 中而将开发站点放在 FF 中会很方便 我尝试了 FoxyProxy 但似乎无法让它工作 我用它来用 localserver 覆盖系统的 DNS
  • Hibernate的batch_size最佳值

    谁能建议我如何选择最有价值的hibernate jdbc batch size 如果内存和CPU没有问题 可以使用500这样的值 EDIT In 本章 http docs jboss org hibernate orm 4 0 devgui
  • 根据具有特定顺序的向量对数据框行进行排序

    有没有一种更简单的方法来确保数据帧的行根据 目标 向量进行排序 就像我在下面的简短示例中实现的那样 df lt data frame name letters 1 4 value c rep TRUE 2 rep FALSE 2 df na
  • 带有 AbstractClass 通知程序的 MultiProvider

    我正在尝试为 Google 和 Facebook 登录创建一个单一界面 我的SignInProvider好像 abstract class SignInProvider with ChangeNotifier bool get isSign
  • 没有名为 future 的模块

    我正在 python 中运行一个电报机器人 并且在 raspbian pi3 上使用 python3 6 以下是我的进口 from future import absolute import division print function
  • 用边框半径隐藏的溢出在图像上显示奇怪的灰色边框

    我有一个圆形 div 它包含一个图像和另外两个 div 问题是该 div 周围显示灰色边框 所有浏览器 chrome 和 firefox 均存在此问题 我尝试过添加浏览器 css vendor prefixes 掩码 但没有结果 我不能使用
  • 我应该如何“取消”ConcurrentDictionary 中的 AddOrUpdate?

    我已阅读 MSDN 文档并这个博客 http blogs msdn com b pfxteam archive 2010 01 08 9945809 aspx我需要以下逻辑 For a ConcurrentDictionary
  • Optaplanner 中可空的链式规划变量

    因此 我正在研究对过度约束的路由问题进行建模 其中并非所有任务都必须在该特定规划问题中进行 相反 目标是最大化该规划问题中的任务 我想这应该很容易通过允许计划变量可为空来实现 但似乎 Optaplanner不允许在链式计划变量上执行此操作
  • 在矩形内绘制线宽 matplotlib

    我在使用 Patches 在 matplotlib 中绘制矩形时遇到问题 什么时候linewidth提供给patches Rectangle 边框绘制在矩形的外部 这是一个例子 import matplotlib pyplot as plt
  • 使用单个 SQL 查询构建层次结构树

    我有一个SQL表具有以下结构 id int par int relational to id name varchar Column par包含对id or NULL如果没有参考 此表旨在构建一个层次树 然后 给定数据 id par nam
  • 如何将 TextView 添加到 GridView 布局中的 ImageView 中?

    我需要一个 GridView 但在每个网格中 其上方 内部都会有一个 ImageView 和 TextView 它就像每个网格中的项目图像 以及图像上的项目名称 我正在尝试 public View getView int position
  • 添加后如何在 Android 中实现下拉导航操作栏?

    通过遵循本指南 http wptrafficanalyzer in blog adding drop down navigation to action bar in android http wptrafficanalyzer in bl
  • 将 java String[] 设置为 postgres 准备好的语句时出错

    我正在尝试将字符串数组插入 Postgres 中 我从 Postgres 收到无效类型错误 public static void main String args throws SQLException String skus 0514 0
  • 从 ipython 导入

    如果我将 IDLE 与 python 2 7 一起使用 import cv import cv2 它有效 但如果我使用 ipython 笔记本 它给了我错误 ImportError Traceback 最近调用 最后 在 gt 1份导入简历
  • numPy 中的意外特征向量

    我见过this https stackoverflow com questions 13739186 compute eigenvector using a dominant eigenvalue问题 这与我尝试使用 numPy 计算 Py
  • 将新节点添加到链表的新方法

    void addNewNode struct node head int n struct node temp struct node malloc sizeof struct node temp gt data n temp gt lin
  • 单例bean和原型bean有什么区别?

    我是春天的新手 我读到了这篇文章 基本上 bean 具有定义其在应用程序中存在的范围 Singleton 意味着每个 Spring IOC 容器对单个对象实例的单个 bean 定义 原型 意味着任意数量的对象实例的单个 bean 定义 那么
  • Postman 上的授权类型 Bearer Token

    我正在尝试使用 Postman 测试一些端点 所有端点都需要一个可以通过登录获取的令牌 所以我这样做了 请求 1 登录成功后 我可以从响应中访问令牌 然后将该令牌存储在全局变量中 let token pm response json loc
  • 旧版应用程序上的 Windows GUI 自动化

    我正在尝试自动化一个名为的旧 Windows 应用程序FacTel5 http www movistar es empresas ayuda factel abierto empresas 我已经能够自动化登录部分 但下一个表单是一个类似项