首页 > 解决方案 > 一旦调用了 driver.get(URL) 方法,Selenium Java Client 就不会取回控制权

问题描述

driver.get("MyURL");
System.out.println("URL is opened");
executeAutoItScript(scriptFileLocation);

当我打开 URL 时,我会弹出一个 Authentication Required 弹出窗口。为了处理这个问题,我正在使用 AutoIt 脚本。但问题是只要第一个命令

(driver.get("MyURL");) 

执行后,Chrome 将打开并出现身份验证弹出窗口。我观察到第二行

 System.out.println("URL is opened");     

没有被执行。我对其进行了调试并观察到控制权没有从

driver.get("MyURL"); 

它挂在那里。我改变了 driver.get("MyURL"); 到 driver.navigate().to("MyURL"); 但没有运气。谁能帮我解决这个问题。附件是弹出的屏幕截图。 在此处输入图像描述

标签: javaseleniumselenium-webdriverwebdriverbasic-authentication

解决方案


根据您的代码试验和浏览器快照,浏览器客户端(即Google Chrome 浏览器)似乎没有将控件返回给WebDriver实例,随后Selenium Java 客户端无法达到'document.readyState'等于的状态"complete"。因此,您的下一行代码都不是:

System.out.println("URL is opened");

正在执行,也不是下一行的AutoIt 脚本:

executeAutoItScript(scriptFileLocation);

解决方案

您的问题尚不清楚此Authentication Popup的来源。也许在讨论Selenium - Basic Authentication via url之后,您可以传递嵌入在URL中的用户名密码,如下所示:

driver.get("http://admin:admin123@MyURL");

推荐阅读