python - 如何使用 pywinauto 移动 Firefox 窗口
问题描述
这是我的代码:
评论部分是我之前尝试过的,但没有奏效。
try:
# app = Application(backend="uia").start("C:\\Program Files\\Mozilla Firefox\\firefox.exe")
# time.sleep(5)
# mozilla = app.window_(title_re = ".*Mozilla Firefox")
# time.sleep(5)
# mozilla.move_window(200, 200, 200, 200, True)
app = Application().start("C:\\Program Files\\Mozilla Firefox\\firefox.exe")
dlg_spec = app.window()
dlg_spec.move_window(x=None, y=None, width=200, height=100, repaint=True)
except AppStartError:
print("CANNOT START !!")
return False
except ElementNotFoundError :
print("COULD NOT FOUND THE WINDOW !!")
return False
except ElementAmbiguousError :
print("TOO MANY FIREFOX !!")
return False
我无法找到窗口!在评论中,我收到了这个错误:
mozilla.move_window(200, 200, 200, 200, True)
File "C:\Users\XX\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pywinauto\application.py", line 180, in __call__
raise AttributeError("Neither GUI element (wrapper) " \
AttributeError: Neither GUI element (wrapper) nor wrapper method 'move_window' were found (typo?)
我会很感激任何帮助,谢谢。
解决方案
您必须在调用中使用正确的title
或best_match
值。.window(...)
这样 pywinauto 就知道要搜索哪个窗口。例如,app.window(title_re=".*Firefox")
。
要列出所有标题,请使用以下语句:
print([w.window_text() for w in app.windows()])
也是.draw_outline()
突出发现元素的有用方法。
推荐阅读:入门指南
编辑:
如果返回一个空列表,您必须使用方法而不是 / 除了.windows()
按标题重新连接. 我们有一个功能请求来检测生成的进程,但目前它的优先级很低。connect
start
编辑2:
它如何为我工作:
from pywinauto import Application
app = Application(backend="win32").start("C:\\Program Files\\Mozilla Firefox\\firefox.exe")
app = Application(backend="win32").connect(title='Mozilla Firefox', found_index=0, timeout=5)
dlg_spec = app.window(title='Mozilla Firefox', found_index=0)
dlg_spec.move_window(x=None, y=None, width=200, height=100, repaint=True)
推荐阅读
- flutter - 如果列表为空,ListView 不显示结果
- c - 指针变量无法正确处理内存地址
- c++ - 为使用 gRPC 安装的 Protobuf 配置 VsCode 包含路径
- css - 悬停时如何使带有链接的图像变淡
- css - 为什么我们使用响应式方法,而 % 属性使我们的页面适应任何屏幕尺寸?
- arduino - LED 不亮
- android - 在 Android 中设置 FLAG_LAYOUT_IN_SCREEN 后禁用全屏模式
- java - 如何不持久化 sqlSession.selectOne 返回值?
- amazon-web-services - YAML 文件中的变量以将其作为云形成中的标记
- r - 这是否可以将字符串的子集更改为数值?