2

我正在尝试使用 Python 获取当前窗口的 url(如果有焦点导航器),但我做不到,它显示错误。

有人可以指导我吗,我是 python 新手(我是 Java 开发人员)。

import time
import win32gui
import uiautomation as auto

_active_window_name = None

while True:
    window = win32gui.GetForegroundWindow()
    chromeControl = auto.ControlFromHandle(window)
    edit = chromeControl.EditControl()

    #print(dir(chromeControl.EditControl()))
    print(edit.GetValuePattern().Value)

    time.sleep(5)
4

1 回答 1

0

试试这个(实际上不需要win32gui):

import uiautomation as auto


control = auto.GetFocusedControl()
controlList = []
while control:
    controlList.insert(0, control)
    control = control.GetParentControl()
    
control = controlList[0 if len(controlList) == 1 else 1]
    
address_control = auto.FindControl(control, lambda c, d: 
                                            isinstance(c, auto.EditControl))

print('Current URL:')
print(address_control.GetValuePattern().Value)

然后,您还可以为 OmniBox 设置一些新值:

address_control.GetValuePattern().SetValue('http://some_url')
于 2021-07-16T19:31:50.487 回答