无法处理弹出的身份验证 我正在使用C#、Selenium、AutoIt和Google Chrome 我可以启动浏览器,并可以看到身份验证弹出窗口

无法处理弹出的身份验证 我正在使用C#、Selenium、AutoIt和Google Chrome 我可以启动浏览器,并可以看到身份验证弹出窗口,c#,selenium,autoit-c#-wrapper,C#,Selenium,Autoit C# Wrapper,当执行下面的代码时,弹出窗口消失,之后浏览器将永远停留在那里 autoItX3 autoIt = new AutoItX3(); Driver.Instance.Manage().Window.Maximize(); Driver.Instance.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(2); try { Driver.Instance.Navigate().GoToUrl(Driver.BaseAddress); }

当执行下面的代码时,弹出窗口消失,之后浏览器将永远停留在那里

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

您正在尝试自动化子窗口。 Autoit在被告知之前不会看到子窗口

Opt("WinSearchChildren", 1) ;0=no, 1=search children also
允许窗口搜索例程搜索子窗口以及 顶层窗口。0=(默认)仅搜索顶级windows 1= 搜索顶级窗口和子窗口

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

    比如:

    或 “”)

  • 根据我们的内部认证,这是对我有效的:

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


  • 现在我没有看到任何弹出窗口,它只是重新指导我登录

    你可以试试西库里。基于图像的自动化工具。我已经为Firefox实现了这一功能,并且运行良好。我正在尝试寻找AutoIt解决方案,如果你能给我更多的想法,你最近有没有尝试过直接给url提供凭据?跳过登录?你可以参考这个我尝试过传递驱动程序。get(“)这对我没有帮助。我所能看到的只是pop似乎没有得到部分处理,我可以在网页上看到URL,页面永远停留在那里。另一个区别是我的网站使用的是HTTPS而不是HTTP。现在谷歌说:当我写这篇“autoIt.WinActivate”时,一些现代浏览器不再支持基本访问证书的URL编码(“需要身份验证”);,这意味着焦点转到这个弹出窗口(这是我从谷歌了解到的)。不管怎样,我试过你的解决方案,但它不起作用。我想唯一的解决方案是将凭证嵌入URL并绕过此登录。URL转到弹出窗口所在的页面后,驱动程序立即失去控制。Driver.Instance.Navigate().GoToUrl(Driver.BaseAddress);autoIt.Opt(“WinSearchChildren”,1);autoIt.WinWait(“需要身份验证”);autoIt.WinActivate(“需要身份验证”);自动发送(“管理”);发送(“{TAB}”);自动发送(“演示”);autoIt.Send(“{ENTER}”)@MikeASP您应该使用“自动编辑窗口信息”以获得正确的标题/数据。还可以玩Opt(“WinTitleMatchMode”),是的,我已经尝试过你的解决方案,但对我不起作用,谢谢