无法使用任何浏览器的selenium web-driver处理登录弹出窗口

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法使用任何浏览器的selenium web-driver处理登录弹出窗口相关的知识,希望对你有一定的参考价值。

我试图点击一个URL,要求提供身份验证弹出窗口,这既不是窗口弹出窗口,也不是浏览器弹出窗口。

除非使用用户名和密码手动输入此弹出窗口,否则代码driver.get(“myURL”)将挂起/暂停。手动输入凭据后,自动脚本将继续 - 下一行driver.get(“myURL”)。

到处都提到了AutoIT和其他警报方法。但问题是,除非手动处理,否则代码永远不会到达driver.get(“myURL”)的下一行。

相同的URL导航到本地计算机上的登录网页,我可以使用selenium webdriver处理,没有任何问题,因为没有警报弹出.ScreenShot但是在服务器机器中打开了相同的URL - 要求此弹出窗口输入用户名和密码。

答案

您可以使用driver.get()中的URL传递身份验证。为此,只需在:分隔的协议之后直接添加凭据,并在实际URL之前以@结尾。

例如,如果您的用户是“用户”而您的密码是“密码”:driver.get("https://user:password@yourpage.com");

另一答案

找到解决方案,可以通过线程概念来处理

Thread t = new Thread(new Runnable() {
            public void run() {
                System.out.println(Thread.currentThread().getName());
                driver.get(Thread.currentThread().getName());
            }
        }, url);
        t.start();
// Next line of code :AutoIT or Robot or Sikuli to handle security pop-up

以上是关于无法使用任何浏览器的selenium web-driver处理登录弹出窗口的主要内容,如果未能解决你的问题,请参考以下文章

我无法使用 Selenium 启动浏览器

Selenium / Python:无法使用任何find_element_by_ *方法查找元素

Firefox 更新后无法使用 Selenium 打开浏览器

Firefox 更新后无法使用 Selenium 打开浏览器

无法在浏览器中单击radio元素(使用Python 3和Selenium)[重复]

无法使用selenium webdriver在表中找到元素