无法处理身份验证弹出

时间:2017-11-21 01:04:48

标签: c# selenium autoit

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

    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);
    

2 个答案:

答案 0 :(得分:1)

您正在尝试自动化子窗口。 Autoit没有看到子窗口直到告诉。

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

允许窗口搜索例程搜索子窗口以及   顶级窗户。 0 =(默认)仅搜索顶级窗口1 =   搜索顶级和子窗口

答案 1 :(得分:0)

  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”

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