Pywinauto,print_control_identifiers 不显示 chrome 打印窗口 UI 元素

问题描述 投票:0回答:1

我的情况与这篇文章类似。我正在使用 selenium 访问网页,导航到特定页面,然后单击打开打印对话框的链接。 我计划然后使用 pywinauto 连接到打印对话框来设置打印选项并打印文档,但我无法在打印对话框中找到 UI 元素。 当我使用 Inspect.exe 时,我可以很好地找到元素,但是当我执行连接到已打开的 crome 窗口然后打印的代码时,我无法找到 ui 元素。

Screen capture of inspect.exe and the elements that I wish to interact with

执行以下代码时:

from pywinauto.application import Application

app = Application(backend="uia").connect(title_re=".*- Google Chrome -.*")


win = app.window(best_match="using pywinauto, how can I draw a rectangle arround a ui element?")
win.print_control_identifiers()

控件标识符不会显示任何看起来与我需要访问的 ui 元素相似的东西。

我能够在控件标识符树中找到的最多内容如下:

   | Pane - 'Print'    (L299, T78, R1622, B955)
   | ['Print', 'PrintPane', 'Pane22']
   | child_window(title="Print", control_type="Pane")
   |    | 
   |    | Pane - ''    (L299, T78, R1622, B955)
   |    | ['Pane23']
   |    |    |
   |    |    | Pane - ''    (L299, T78, R1622, B955)
   |    |    | ['Pane24']
   |    |    |    | 
   |    |    |    | Pane - ''    (L0, T0, R0, B0)
   |    |    |    | ['Pane25']
   |    |    |    | 
   |    |    |    | Pane - ''    (L306, T83, R1615, B946)
   |    |    |    | ['Pane26']

这似乎与“打印”对话框有关,但我找不到任何看起来像我需要与之交互的下拉菜单的内容。

任何指点将不胜感激,因为我已经为此苦苦挣扎了好几天。

printing selenium-chromedriver pywinauto
1个回答
0
投票

Application
对象仅代表一个进程,还不是顶级窗口。所以需要反复寻找顶层窗口。

方法

timeout=0
中的默认
connect(...)
也存在一个已知问题,它有一个解决方法:显式使用它。但似乎第一点在这里更重要。

我建议尝试这种方式(它对我来说适用于英语语言环境和其他一些

title_re
值,所以请仔细检查我是否已正确地将脚本适应您的情况):

from pywinauto.application import Application

app = Application(backend="uia").connect(title_re=".*- Google Chrome -.*", timeout=10)


win = app.window(title_re=".*- Google Chrome -.*")
win.dump_tree() # output may be very large for top window

# combo box can be reached directly from top window, though it is slower
print(win.child_window(title="Destination", control_type="ComboBox").window_text())

# or this way:
child_win = win.child_window(best_match="using pywinauto, how can I draw a rectangle arround a ui element?")
child_win.dump_tree() # less large output
© www.soinside.com 2019 - 2024. All rights reserved.