无法处理身份验证弹出窗口

Unable to handle authentication pop up

  1. 我正在使用 C#、Selenium、AutoIt 和 Google Chrome。
  2. 我可以启动浏览器,并且可以看到身份验证弹出窗口。
  3. 弹出window在执行下面的代码时消失,之后浏览器永远停留在那里。

    autoItX3 autoIt = new AutoItX3();
    Driver.Instance.Manage().Window.Maximize();
    Driver.Instance.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(2);
    
    try
    {
        Driver.Instance.Navigate().GoToUrl(Driver.BaseAddress);
    }
    catch
    {
        return;
    }
    autoIt.WinWait("Authentication Required");
    autoIt.WinActivate("Authentication Required");
    autoIt.Send("admin");
    autoIt.Send("{TAB}");
    autoIt.Send("pass");
    autoIt.Send("{ENTER}");
    Driver.Instance.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(-1);
    

您正在尝试使 child window 自动化。 Autoit 在被告知之前不会看到 child windows。

Opt("WinSearchChildren", 1) ;0=no, 1=search children also

Allows the window search routines to search child windows as well as top-level windows. 0 = (default) Only search top-level windows 1 = Search top-level and child windows

  1. 如果不了解服务器上身份验证实现的内部结构,很难发表评论。有一件事是肯定的——从安全角度来看这是一个坏主意,因为附加到 URL 的参数不安全。

    喜欢:http://myURL.com/index.jsp/j_security_check?j_username=username&j_password=password

    或 "http://username:password@www.example.com/")

  2. 根据我们的内部验证,这对我有用:

    https://myURL.com/login/Login.aspx?usestandardlogin=1

    所以它 => "http:YouURL.com" +“?” + "usestandardlogin=1"

现在我没有看到任何弹出窗口,它只是在登录时重定向我。