如何在Python中将弹出窗口带到前台

时间:2015-10-04 09:37:29

标签: python windows selenium win32gui

我一直在尝试自动化浏览器登录。作为登录的一部分,我得到一个pre-auth弹出窗口(这不是浏览器弹出窗口,也不是本机窗口弹出窗口)。我必须允许pop来扫描我的电脑,以便我可以进入登录页面。但是,我无法将弹出窗口置于前台进行进一步处理。

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

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

  2. 我尝试使用下面的代码找到系统上所有打开的窗口,我得到一个窗口句柄列表以及窗口标题,但我正在寻找的窗口没有窗口标题。< / p>

  3. 查找所有可见窗口的标题和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
    

    请给我评论我应该如何推进这项工作。我一直在周末试着这个没有运气。

1 个答案:

答案 0 :(得分:-1)

通常,可以使用键盘事件处理身份验证弹出窗口。 在Java绑定中,您可以使用Java Robot类来模拟键盘事件。 在高级别,您的步骤将是这样的。

  1. 输入用户名
  2. 按Tab键转至密码字段
  3. 输入密码
  4. 按Tab键将焦点放在确定按钮
  5. 按Enter键
  6. 请参阅以下答案,以便在Python中执行键盘事件。

    generate-keyboard-events in Python