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

问题描述:

我一直在试图自动化浏览器登录。作为登录的一部分,我得到一个预先验证弹出窗口(这不是浏览器弹出窗口,也不是本机窗口弹出窗口)。我必须允许弹出窗口扫描我的电脑,以便我可以进入登录页面。但是,我无法将弹出窗口置于前景以供进一步处理。如何在Python中将弹出窗口带到前台

事情我至今尝试过:

  1. 尝试使用硒警报功能(通过这个我才知道这是不是一个浏览器弹出)。我也尝试为所有浏览器窗口打开句柄(使用函数window_handle(),我只得到一个用于主浏览器窗口的句柄)。

  2. 我试图使用下面的代码在系统上找到所有打开的窗口,并且我得到了窗口句柄以及窗口标题的列表,但是我正在查找的窗口没有窗口标题。

代码找到所有可见的窗口标题和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 

请给我如何我应该向前走这件事的意见。我一直在尝试这个周末没有运气。

+0

你可以通过尝试抑制浏览器的身份验证: 'HTTP://用户名:密码@ url.com/page' –

+0

感谢您的答复Anuj。但这不是我应该这样做的。 – LearningNinja

通常情况下,身份验证弹出窗口可以通过键盘事件进行处理。 在java绑定中,您可以使用Java Robot类来模拟键盘事件。 在高层次你的步骤将是这样的。

  1. 类型用户名
  2. 按Tab键转到密码字段
  3. 类型的密码
  4. 按下Tab键获得焦点OK按钮
  5. 按Enter键

请参考以下是在Python中执行键盘事件的答案。

generate-keyboard-events in Python