如何在Python中将弹出窗口置于前台

如何在Python中将弹出窗口置于前台,python,windows,selenium,win32gui,Python,Windows,Selenium,Win32gui,我一直在尝试自动登录浏览器。作为登录的一部分,我会得到一个预验证弹出窗口(它不是浏览器弹出窗口,也不是本机windows弹出窗口)。我必须允许pop扫描我的电脑,这样我才能进入登录页面。但是,我无法将弹出窗口置于前台进行进一步处理 到目前为止我已经尝试过的事情: 尝试使用selenium警报功能(通过这一点,我知道它不是浏览器弹出窗口)。我还尝试获取所有浏览器窗口的打开句柄(使用函数window_handle(),我只获取一个主浏览器窗口的句柄) 我尝试使用下面的代码查找系统上所有打开的窗口,我

我一直在尝试自动登录浏览器。作为登录的一部分,我会得到一个预验证弹出窗口(它不是浏览器弹出窗口,也不是本机windows弹出窗口)。我必须允许pop扫描我的电脑,这样我才能进入登录页面。但是,我无法将弹出窗口置于前台进行进一步处理

到目前为止我已经尝试过的事情:

  • 尝试使用selenium警报功能(通过这一点,我知道它不是浏览器弹出窗口)。我还尝试获取所有浏览器窗口的打开句柄(使用函数window_handle(),我只获取一个主浏览器窗口的句柄)

  • 我尝试使用下面的代码查找系统上所有打开的窗口,我得到了一个窗口句柄列表以及窗口标题,但我要查找的窗口没有窗口标题

  • 查找所有可见窗口的标题和hwnd的代码:

    def get_all_windows():
        """Returns dict with window desc and hwnd,
        don't ask me how it works!"""
    
        def _MyCallback( hwnd, extra ):
            """Helper function for above??"""
            hwnds, classes = extra
            hwnds.append(hwnd)
            classes[win32gui.GetWindowText(hwnd)] = hwnd
    
        windows = []
        classes = {}
        win32gui.EnumWindows(_MyCallback, (windows, classes))
        return classes
    

    请就我应该如何推进这件事给我一些意见。这个周末我一直在尝试这个,但运气不好。

    通常,身份验证弹出窗口可以通过键盘事件处理。 在java绑定中,可以使用java Robot类来模拟键盘事件。 在高级阶段,您的步骤将如下所示

  • 键入用户名
  • 按Tab键进入密码字段
  • 键入密码
  • 按Tab键将焦点放在Ok按钮上
  • 按回车键
  • 请参考以下答案,了解如何在Python中执行键盘事件


    您可以通过尝试来取消浏览器身份验证:
    http://username:password@url.com/page
    感谢Anuj的回复。但我不应该这样做。